$ cacheFactory在页面重新加载时删除我的缓存

时间:2016-05-26 19:45:24

标签: angularjs caching cachefactory

所以我有一个简单的工厂,可以创建缓存对象

.factory('jsonCache',function($cacheFactory){
    console.log("Creating cache");
    return $cacheFactory('weatherCache');
});

然后我在控制器中调用缓存对象,就像这样传递它一样。但由于某种原因,数据并不持久。每次重新加载页面时,缓存都会再次为空。

有什么想法吗?我错过了什么吗?

.controller('citiesListCtrl',function($scope,$http,$filter,jsonCache){

    jsonCache.get('weatherCache');
    console.log(jsonCache); <----- EMPTY

    $http.get(url)
        .then(function(response) {

          jsonCache.put('weatherCache', response.data.records);
          console.log(jsonCache); <--- HAS DATA
    });
)}

1 个答案:

答案 0 :(得分:1)

数据不是持久的,原因很简单:$cacheFactory缓存只不过是普通JS对象的瘦包装。

您可以检查the source以确保该服务除了简单的LRU算法之外什么都不做。

对于数据持久性,使用持久存储(可能是angular-local-storageangular-localForage)。 angular-cache是内置$cacheFactory that supports persistence的另一种替代品。