关于angularJs清除浏览器缓存的方法
缓存篇
一个缓存就是一个组件,它可以透明地储存数据,以便以后可以更快地服务于请求。多次重复地获取资源可能会导致数据重复,消耗时间。因此缓存适用于变化性不大的一些数据,缓存能够服务的请求越多,整体系统性能就能提升越多。
浏览器缓存,有时候我们需要他,因为他可以提高网站性能和浏览器速度,提高网站性能。但是有时候我们又不得不清除缓存,因为缓存可能误事,出现一些错误的数据。像股票类网站实时更新等,这样的网站是不要缓存的,像有的网站很少更新,有缓存还是比较好的。
以下是传统的清除浏览器的方法
meta方法
//不缓存
清理form的临时缓存
ajax清除缓存
$.ajax({
url:'www.haorooms.com',
dataType:'json',
data:{},
cache:false,
ifModified:true,
success:function(response){
//操作
}
async:false
});
用随机数,随机数也是避免缓存的一种很不错的方法!
URL参数后加上"?ran="+Math.random();//当然这里参数ran可以任意取了
用随机时间,和随机数一样。
在URL参数后加上"?timestamp="+newDate().getTime();
用php后端清理
在服务端加header("Cache-Control:no-cache,must-revalidate");等等(如php中)
下面介绍关于angularJs项目中清除浏览器的方法,当然以上传统的方法也是可以适用的,但对于angularJs来说还需添加以下几项:
一、清除模板缓存
.run(function($rootScope,$templateCache){
$rootScope.$on('$routeChangeStart',function(event,next,current){
if(typeof(current)!=='undefined'){
$templateCache.remove(current.templateUrl);
}
});
});
二、html添加随机参数
.state("content",{
url:"/",
views:{
"bodyInfo":{templateUrl:'tpls/bodyInfo.html?'++newDate(),
controller:'bodyInfoCtrl'},
"header":{templateUrl:'tpls/header.html?'++newDate(),
controller:'headerCtrl'
},
"footer":{templateUrl:'tpls/footer.html?'++newDate(),
controller:'footerCtrl'
}
}
})
三、清除route缓存
.config(['$stateProvider','$urlRouterProvider','$locationProvider','$httpProvider',function($stateProvider,$urlRouterProvider,$locationProvider,$httpProvider){
//$urlRouterProvider.when("","/home");
$urlRouterProvider.otherwise('/');
if(!$httpProvider.defaults.headers.get){
$httpProvider.defaults.headers.get={};
}
$httpProvider.defaults.headers.common["X-Requested-With"]='XMLHttpRequest';
$httpProvider.defaults.headers.get['Cache-Control']='no-cache';
$httpProvider.defaults.headers.get['Pragma']='no-cache';
好了……就这么多了
如果还有其他方法欢迎指点迷津!
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。