Подтвердить что ты не робот

Локальное хранилище против AngularJS $cacheFactory

У меня проблема с хранением большого количества клиентских данных, и я не могу решить, какой путь лучше. Теперь я использую AngularJS cacheFactory, он отлично работает, но все данные перезагружаются с помощью нового сеанса. Стоит ли вместо этого использовать локальное хранилище?

4b9b3361

Ответ 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...