我尝试在我的项目中使用angular-cache模块,但不确定它是否正常工作。以下是代码 -
angular.module('TrackerApp').factory('TrackerFactory', function ($resource, CacheFactory) {
if (!CacheFactory.get('CenterCache')) {
console.log('cache does not exists');
CacheFactory.createCache('CenterCache', {
maxAge: 5 * 60 * 1000,
deleteOnExpire: 'aggressive'
});
}
var centerCache = CacheFactory.get('CenterCache');
var CenterClass = $resource(_ServiceBaseURL + 'api/Center/:id',{},{
query: {
method: 'GET',
cache: centerCache,
isArray:true
}
});
CenterClass.GetMultipleAsObject = function () { return this.query(); };
return {
CenterClass: CenterClass
};
});
在应用程序加载时,它会在控制台中打印“缓存不存在”的消息,并在本地存储中创建缓存。它在本地存储中创建了以下密钥-
“angular-cache.caches.CenterCache.keys” = [http://localhost/Services/Tracker/api/Center]
创建了另一个密钥
“angular-cache.caches.CenterCache.data.http:// localhost/Services/Tracker/api/Center” = mystoredvalue
问题:
- 当页面刷新(按F5),我看到控制台消息再次打印,并且在http调用中,我可以看到“Center”信息正在被下载,而不是从缓存中获取。
- 从一个页面导航到另一个页面时,我没有看到控制台消息被打印。但是我确实看到“Center”API被调用,并且在网络选项卡中下载数据。它应该从缓存中获取。
我感觉它没有从缓存中获取数据。我错过了什么吗?