浏览器缓存,有时候我们需要他,因为他可以提高网站性能和浏览器速度,提高网站性能。但是有时候我们又不得不清除缓存,因为缓存可能误事,出现一些错误的数据。像股票类网站实时更新等,这样的网站是不要缓存的,像有的网站很少更新,有缓存还是比较好的。
以下是传统的清除浏览器的方法
meta方法
[html]
//不缓存
<METAHTTP-EQUIV="pragma"CONTENT="no-cache">
<METAHTTP-EQUIV="Cache-Control"CONTENT="no-cache,must-revalidate">
<METAHTTP-EQUIV="expires"CONTENT="0">
清理form的临时缓存
[html]
<bodyonLoad="javascript:document.yourFormName.reset()">
ajax清除缓存
[html]
$.ajax({
url:"",
dataType:"json",
data:{},
cache:false,
ifModified:true,
success:function(response){
//操作
}
async:false
});
用随机数,随机数也是避免缓存的一种很不错的方法!
[html]
URL参数后加上"?ran="+Math.random();//当然这里参数ran可以任意取了
用随机时间,和随机数一样。
[html]
在URL参数后加上"?timestamp="+newDate().getTime();
用php后端清理
[html]
在服务端加header("Cache-Control:no-cache,must-revalidate");等等(如php中)
下面介绍关于angularJs项目中清除浏览器的方法,当然以上传统的方法也是可以适用的,但对于angularJs来说还需添加以下几项:
一、清除模板缓存
[javascript]
.run(function($rootScope,$templateCache){
$rootScope.$on("$routeChangeStart",function(event,next,current){
if(typeof(current)!=="undefined"){
$templateCache.remove(current.templateUrl);
}
});
});
二、html添加随机参数
[javascript]
.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"
}
}
})
[html]
<linkrel="stylesheet"href="stylesheets/main.css?version=1.0.3">
三、清除route缓存
[javascript]
.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.mon["X-Requested-With"]="XMLHttpRequest";
$httpProvider.defaults.headers.get["Cache-Control"]="no-cache";
$httpProvider.defaults.headers.get["Pragma"]="no-cache";
好了……就这么多了
如果还有其他方法欢迎指点迷津!