Javascript 服务调用后删除缓存
所以我有两种服务方式。我正在使用$resource的内置缓存支持。我想要实现的是当我从控制器发出一些服务调用以刷新缓存时。我尝试了一些使用$cacheResource的示例,但没有成功。下面是我的代码 服务Javascript 服务调用后删除缓存,javascript,angularjs,caching,Javascript,Angularjs,Caching,所以我有两种服务方式。我正在使用$resource的内置缓存支持。我想要实现的是当我从控制器发出一些服务调用以刷新缓存时。我尝试了一些使用$cacheResource的示例,但没有成功。下面是我的代码 服务 angular.module('module').factory('Service1',['$resource', function ($resource){ return $resource('..api/latest/myservice', {}, { t
angular.module('module').factory('Service1',['$resource',
function ($resource){
return $resource('..api/latest/myservice', {}, {
takeSomething: {
method: 'GET',
url: '..api/latest/myservice/takesomething',
cache: true
},
putSomething: {
method: 'GET',
url: '..api/latest/myservice/putsomething',
cache: true
}
}
}]
控制器
angular.module('module').factory('MyController',['$scope','Service1',
function($scope, service1) {
....
$scope.update = function() {
service1.putSomething({
......
refresh cache for takeSomething method in service or for all methods
});
}
}
因此,当我从控制器调用这个函数update时,我想刷新takeSomething方法或所有方法的缓存。您可以使用
$cacheFactory
获得默认的$http
缓存;这将有一个remove
方法来执行您想要的操作
您需要将$cacheFactory
注入到您计划在$scope.update
中使用它的任何位置,或者您可以将它移动到您的服务中
var $httpDefaultCache = $cacheFactory.get('$http');
$httpDefaultCache.remove('..api/latest/myservice/takesomething');
您可以使用
$cacheFactory
获取默认的$http
缓存;这将有一个remove
方法来执行您想要的操作
您需要将$cacheFactory
注入到您计划在$scope.update
中使用它的任何位置,或者您可以将它移动到您的服务中
var $httpDefaultCache = $cacheFactory.get('$http');
$httpDefaultCache.remove('..api/latest/myservice/takesomething');
缓存:false
?是否希望缓存值是动态的?你们希望每个api调用都不一样吗?好吧,我希望是cache:true,因为我正在将它用于来自控制器的其他调用。但只有通过控制器的此调用,我才想刷新缓存。是否将true/false
值存储在service scope
中的全局变量中,并使用service
中的另一种方法更新该全局变量?听起来不错?嗯。。。那么什么是最好的方法呢?我在从Apache2服务器获取一些JSON时遇到了类似的问题,并且在获取新的JSON时总是遇到问题。我解决了将currentTime附加到$http GET请求的问题。cache:false
?是否希望缓存值是动态的?你们希望每个api调用都不一样吗?好吧,我希望是cache:true,因为我正在将它用于来自控制器的其他调用。但只有通过控制器的此调用,我才想刷新缓存。是否将true/false
值存储在service scope
中的全局变量中,并使用service
中的另一种方法更新该全局变量?听起来不错?嗯。。。那么什么是最好的方法呢?我在从Apache2服务器获取一些JSON时遇到了类似的问题,并且在获取新的JSON时总是遇到问题。我解决了将currentTime附加到$http GET请求的问题。