Pull to refresh

Библиотека для кэширования на стороне клиента

Reading time2 min
Views7.2K
Поискал на хабре пост про эту библиотеку, не нашел и решил написать коротенько о ней.
Библиотека называется locache.js и позволяет кэшировать JS строки, массивы и объекты. Изюминка библиотеки в том, что кэшировать можно как внутри сессии пользователя, т.е. до перезагрузки окна браузера, так и за ее приделами, т.е. даже после закрытия браузера кэш останется.



Пару примеров с сайта библиотеки:

  1. // Устанавливаем время жизни кэша
  2. var seconds = 60;
  3.  
  4. // Записываем данные в кэш и устанавливаем время жизни равное 60 сек
  5. locache.set("key", {
  6.     'user': 1, 
  7.     'books': ['a', 'b', 'c']
  8. }, seconds);
  9.  
  10. // Получаем данные из кэша
  11. locache.get("key");
  12. // {'user': 1, 'books': ['a', 'b', 'c']}
  13. // Внимание, возвращается именно объект, а не строка
  14.  
  15. // Эдем 60 секунд и снова пробуем получить данные из кэша
  16. locache.get("key");
  17. // null
  18.  
  19. // Если необходимо сохранить данные только для текущей сессии
  20. // нужно использовать следующую запись
  21. locache.session.set("private", {
  22.     'likes': ['kittens', 'JavaScript']
  23. });
  24.  
  25. // Все остальные методы так же работают для записи .session
  26. locache.session.get("private");
  27.  
  28. // Все данные, сохраненные в сессии будут потеряны
  29. // когда пользователь закроет браузер


В дополнение приведу реальный пример использования данной библиотеки. Сейчас я работаю над web-интерфейсом, который загружается только один раз и затем все действия создают только AJAX запросы к серверу для получения новых данных. У интерфейса и его подгружаемых модулей есть множество настроек, которые изменяются довольно редко. Такие настройки я храню в виде статических файлов со строковым представлением JS объектов. При каждом изменении файл получает уникальное имя. Затем эти файлы вычитываются интерфейсом при помощи AJAX запросов. Для их кэширования по имени файла я и использую эту библиотеку.

Надеюсь кому-то она пригодится так же как и мне.
Tags:
Hubs:
+5
Comments6

Articles