web-dev-qa-db-fra.com

Stockage local vs AngularJS $ cacheFactory

J'ai un problème de stockage de nombreuses données côté client et je ne peux pas décider de la meilleure façon. Maintenant, j'utilise cacheFactory d'AngularJS, cela fonctionne bien, mais toutes les données sont rechargées avec une nouvelle session. Vaut-il la peine d’utiliser le stockage local?

58
Rasalom

Si votre objectif est de stocker des données côté client et persistantes, vous ne pouvez pas utiliser $ cacheFactory , qui met simplement en cache les données de la session en cours.

Une solution consiste à utiliser la nouvelle API de stockage local. Ce module génial Angular angulaire vous rend tout le travail sale, et même des cookies pour les anciens navigateurs!

83
Blackhole

Une solution alternative est http://jmdobry.github.io/angular-cache/ , qui fonctionne bien avec ngResource et peut également être facilement configuré pour la synchronisation avec localStorage. -fone après l'actualisation de la page.

$resource('my/kewl/url/:key', { key: '@key' }, {
  'get': { method: 'GET', 
           cache: $angularCacheFactory('MyKewlResourceCache', { 
                                          storageMode: 'localStorage' })
         }
});
21
tmaximini

$ cacheFactory semble être clairement PAS votre solution, car comme Blackhole a dit, le cache sera effacé chaque fois que la session expire. $ cacheFactory est juste une implémentation de memcache de la manière Angular.

angular-cache n’est qu’une API auxiliaire. En gros, elle ajoute une option à $ cacheFactory. L’une de ces options consiste à stocker le cache dans un stockage persistant (comme localStorage).

Ainsi, si vous souhaitez stocker des données dans un stockage persistant, vous pouvez utiliser l'un des modules disponibles tels que angular-local-storage ou bien $ cookieStore , mais des cookies seront créés. .

1
Gut

Un autre angular $ angulaire qui fait le travail: https://github.com/jmdobry/angular-cache

0
hugsbrugs