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