本地存储与AngularJS $ cacheFactory

时间:2013-10-10 19:20:10

标签: javascript angularjs local-storage

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

4 个答案:

答案 0 :(得分:83)

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

一种解决方案是使用新的本地存储API。 This awesome Angular module为你做了所有肮脏的工作,甚至回到旧浏览器的cookie!

答案 1 :(得分:21)

替代解决方案是http://jmdobry.github.io/angular-cache/,它可以很好地与ngResource配合使用,也可以轻松配置为同步到localStorage,因此在页面刷新后不需要重新执行请求。

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

答案 2 :(得分:1)

$ cacheFactory似乎显然不是你的解决方案,因为 Blackhole 表示,每次会话到期时都会清除缓存。 $ cacheFactory只是Angular方式的memcache实现。

angular-cache只是一个帮助API,基本上它为$ cacheFactory添加了选项,其中一个选项是将缓存存储到持久存储中(如localStorage)。

因此,如果您想将数据存储在持久存储中,您可以使用angular-local-storage之类的模块之一或使用$cookieStore,但它会创建Cookie ...

答案 3 :(得分:0)

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