0

我在我的 $http 请求中启用了缓存,现在成功的回调只在第一次运行。我想知道这是否是预期的,或者我需要了解有关缓存 $http 的一些信息?

这是我一直在尝试的:

$http.get('/foo/bar', { cache: true })
.success(function(data){
  // does foo
})
.error(function(){
  // uh oh
});

假设我已经处理过一次数据,但每次我还想运行其他命令。所以,如果数据是真的缓存或已经可用,我不想重复自己,但是假设我用动画打开和关闭元素,这应该去哪里?!

感谢您的关注!

4

2 回答 2

2

您可以使用该$cacheFactory对象。请参阅:http ://docs.angularjs.org/api/ng.$cacheFactory

您可以像这样缓存 $http 请求:

var $httpDefaultCache = $cacheFactory.get('$http');

如果要检索缓存中的特定 url,请执行以下操作:

var cachedData = $httpDefaultCache.get('http://myserver.com/foo/bar/123');

$你也可以清除缓存:

$httpDefaultCache.remove('http://myserver.com/foo/bar/123');

或者 :

$httpDefaultCache.removeAll();

完整的帖子在这里: http: //pseudobry.com/power-up-%24http.html

于 2013-09-23T16:04:09.600 回答
1

我很确定新的 GET 请求没有运行,因此没有调用相应的成功回调。

于 2013-09-23T16:01:27.960 回答