本地存储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