60

我有存储大量客户端数据的问题,我无法决定哪种方式更好。现在我正在使用 AngularJS 的 cacheFactory,它工作正常,但所有数据都会通过新会话重新加载。是否值得使用本地存储?

4

4 回答 4

84

如果您的目标是存储客户端和持久数据,则不能使用$cacheFactory,它只缓存当前会话的数据。

一种解决方案是使用新的本地存储 API。这个很棒的 Angular 模块为您完成了所有繁琐的工作,甚至可以使用旧浏览器的 cookie!

于 2013-10-10T19:34:57.870 回答
21

另一种解决方案是http://jmdobry.github.io/angular-cache/,它与 ngResource 配合得很好,也可以很容易地配置为同步到 localStorage,因此请求不需要在页面刷新后重新完成。

$resource('my/kewl/url/:key', { key: '@key' }, {
  'get': { method: 'GET', 
           cache: $angularCacheFactory('MyKewlResourceCache', { 
                                          storageMode: 'localStorage' })
         }
});
于 2013-12-13T11:17:42.550 回答
1

$cacheFactory seems to be clearly NOT your solution, because as Blackhole said, the cache will be cleared each time session expires. $cacheFactory is just a memcache implementation the Angular way.

angular-cache is just an helper API, basically it adds option to $cacheFactory and one of this option is to store cache into persistent storage (like localStorage).

So if you want to store data in persistent storage you can use use one of the module available like angular-local-storage or use $cookieStore but it will create cookies...

于 2014-09-29T14:24:02.767 回答
0

完成这项工作的另一个角度模块:https ://github.com/jmdobry/angular-cache

于 2015-05-07T09:01:29.417 回答