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