正如标题所述,我正在使用$ resource对象来执行GET请求。
具有深入知识的人可以解释设置时的差异 cache:true
query: {
method: 'GET',
cache: true
}
VS 有类似的内容:
var theCache = $cacheFactory('myCache');
并通过执行以下操作在资源上使用该缓存对象:
query: {
method: 'GET',
cache: theCache
}
答案 0 :(得分:0)
通过传递true
参数,您告诉angular使用默认(全局)$http
缓存,这意味着将缓存响应并通过$http
进行每个下一个请求或者$resource
(这是对$http
的高级抽象)将从缓存中提供(没有额外的请求到服务器)。 $http
缓存中此请求的关键是完整路径URL。您可以使用$http
:
$cacheFactory
缓存实例
var cache = $cacheFactory.get('$http');
现在,如果您要创建特定于资源的缓存,请使用$cacheFactory
创建它,并告诉$http
或$resource
使用它:
var myCache = $cacheFactory.get('myCache');
$http.get('/api/users.json', {
cache: myCache
});
// or
$resource('/api/users.json', null, {
query: { cache: myCache }
});
这样,其他任何请求都不再共享此缓存。此外,您可以在实例化时指定此缓存的capacity
,或在需要时清除它而不影响其他服务。