什么是在angular.js中缓存数据的常用方法

Max*_*kyi 5 javascript caching angularjs

假设我有一个检索标签列表的服务,我将标签存储在缓存中:

function TagsRetriever() {

    var cache = $cacheFactory("tags");
    function getTags() {
        var cached = cache.get("tags");
        if (cached) {
            return cached;
        } else {
            return $http.get("url/getTags").then(function (tags) {
                cache.put("tags", tags);
            });
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

使缓存失效的常用方法是什么?我应该将它与当前日期进行比较吗?angular是否提供任何缓存失效机制?

使用cacheFactory而不是保存缓存的变量有什么好处?

Est*_*ask 1

你可以检查辉煌的角度缓存,这将阻止你用 $cacheFactory 重新发明轮子(它只提供简单的存储,有时就足够了)。

这就是它处理缓存失效的方式(手册中的示例):

CacheFactory('profileCache', {
  maxAge: 60 * 60 * 1000 // 1 hour,
  deleteOnExpire: 'aggressive',
  onExpire: function (key, value) {
    $http.get(key).success(function (data) {
      profileCache.put(key, data);
    });
  }
});
Run Code Online (Sandbox Code Playgroud)

使用cacheFactory代替保存缓存的变量有什么好处?

除此之外,它还建立了可测试的服务来实现LRU并为您节省几行代码?没有什么。