3

角度缓存可以这样设置:

app.service('myService', function ($angularCacheFactory) {

    // This cache will sync itself with localStorage if it exists, otherwise it won't. Every time the
    // browser loads this app, this cache will attempt to initialize itself with any data it had
    // already saved to localStorage (or sessionStorage if you used that).
    var myAwesomeCache = $angularCacheFactory('myAwesomeCache', {
        maxAge: 900000, // Items added to this cache expire after 15 minutes.
        cacheFlushInterval: 3600000, // This cache will clear itself every hour.
        deleteOnExpire: 'aggressive', // Items will be deleted from this cache right when they expire.
        storageMode: 'localStorage' // This cache will sync itself with `localStorage`.
    });
});

据我了解,如果 storageMode 设置为“localStorage”,那么它将处理备份到 localstorage 本身。

我已经将角度 LocalStorageModule 用于其他事情。

我设置 localStoragePolyfill 并使用 LocalStorageModule 有什么优势吗?

4

1 回答 1

1

我想说,Cache合作的最强大的用法LocalStorage可以在这里找到: .put(key, value, options)

如您所见,第三个参数是options,此键值对的设置,而不是整个缓存实例的设置。

所以我们可以这样称呼它

myAwesomeCache.put('someItem'
  , 'someValue'
  , { storageMode: 'localStorage', storageImpl: myLocalStoragePolyfill });

myLocalStoragePolyfill我们的本地存储包装器在哪里?或者我们可以使用内置的处理程序并像这样传递它{ storageMode: 'localStorage' }

那么,有了这个,真正的优势是什么?我们可以缓存一些非常稳定、恒定的设置(如果有的话)。一个例子可能是一些元数据,应用程序的复杂配置,很难改变。

因此,如果我们知道某些东西几乎是静态的,我们确实有简单的方法来使用标准缓存,同时提高性能......

注意:本地存储与内存缓存不同。它存储 JSON 类型的对象。没有方法!只是字符串表示

于 2014-01-23T05:55:32.673 回答