本地存储vs AngularJS $ cacheFactory
我有一个存储大量的客户端数据的问题,我不能决定哪种方式更好。 现在我正在使用AngularJS的cacheFactory,它工作正常,但所有的数据重新加载一个新的会话。 是否值得使用本地存储?
如果您的目标是存储客户端和持久数据,则不能使用$ cacheFactory , 它只caching当前会话的数据。
一种解决scheme是使用新的本地存储API。 这个令人敬畏的Angular模块为您做了所有肮脏的工作,甚至回到旧浏览器的cookies!
另一种解决scheme是http://jmdobry.github.io/angular-cache/ ,它可以很好地与ngResource配合使用,也可以很容易地configuration为同步到localStorage,所以请求不需要在页面刷新后重新完成。
$resource('my/kewl/url/:key', { key: '@key' }, { 'get': { method: 'GET', cache: $angularCacheFactory('MyKewlResourceCache', { storageMode: 'localStorage' }) } });
$ cacheFactory似乎显然不是你的解决scheme,因为正如Blackhole所说,caching将在每次会话过期时被清除。 $ cacheFactory只是一个使用Angular的memcache实现。
angular度caching只是一个辅助API,基本上它增加了$ cacheFactory选项,其中一个选项是将caching存储到持久性存储(如localStorage)中。
所以,如果你想存储数据在持久性存储中,你可以使用可用的angular度本地存储模块之一或使用$ cookieStore,但它会创buildcookie …
另一个可以完成这个工作的angular度模块: https : //github.com/jmdobry/angular-cache
- Android webview&localStorage
- HTML5 – localStorage删除并清除所有数据
- 获取HTML5 localStorage密钥
- HTML5 LocalStorage:检查密钥是否存在
- 浏览器窗口/标签closures时如何删除localStorage项目?
- QuotaExceededError:Domexception22:尝试将某些内容添加到超过配额的存储中
- localStorage.getItem('item')比localStorage.item还是localStorage 好?
- 如何在Firefox中查看/删除本地存储?
- 在HTML5中,每个页面/域是否隔离了localStorage对象?