Локальное хранилище против AngularJS $cacheFactory
У меня есть проблема, хранить много данных на стороне клиента, и я не могу решить, какой путь лучше. Теперь я использую Cachefactory AngularJS, он отлично работает, но все данные перезагружаются с новым сеансом. Стоит ли вместо этого использовать локальное хранилище?
4 ответа:
Если ваша цель-хранить клиентские и постоянные данные, вы не можете использовать $cacheFactory, который просто кэширует данные для текущей сессии.
одним из решений является использование нового API локального хранилища. этот удивительный угловой модуль делает всю грязную работу за вас, и даже возвращается к печенье для старых браузеров!
альтернативным решением является http://jmdobry.github.io/angular-cache/ который хорошо работает с ngResource и также может быть легко настроен для синхронизации с localStorage, поэтому запросы не нужно повторно выполнять после обновления страницы.
$resource('my/kewl/url/:key', { key: '@key' }, { 'get': { method: 'GET', cache: $angularCacheFactory('MyKewlResourceCache', { storageMode: 'localStorage' }) } });
$cacheFactory, похоже, явно не ваше решение, потому что как черная дыра сказал, кэш будет очищаться каждый раз, когда сеанс истекает. $cacheFactory-это просто реализация memcache угловым способом.
angular-cache-это просто вспомогательный API, в основном он добавляет опцию в $cacheFactory, и один из этих вариантов-хранить кэш в постоянном хранилище (например, localStorage).
поэтому, если вы хотите хранить данные в постоянном хранилище, вы можете использовать один из модуль доступен как angular-local-storage или использовать $cookieStore но он будет создавать куки...
еще один угловой модуль, который выполняет эту работу:https://github.com/jmdobry/angular-cache