解决js缓存地址问题[转载]
js实现不缓存
<METAHTTP-EQUIV="pragma"CONTENT="no-cache">
<METAHTTP-EQUIV="Cache-Control"CONTENT="no-cache,must-revalidate">
<METAHTTP-EQUIV="expires"CONTENT="0">
不缓存js的方法
<script>
document.write("<s"+"cripttype='text/javascript'src='/js/test.js?"+Math.random()+"'></scr"+"ipt>");
</script>
其他的类似,只需在地址后加上+Math.random()
注意:因为Math.random()只能在Javascript下起作用,故只能通过Javascript的调用才可以
若上面改为
(<scripttype=”text/javascript“src=”/js/test.js?+Math.random()“></script>
则无法实现不缓存
js文件不缓存
每次连接的地址变化,利用js随机数
document.write("<s"+"cripttype='text/javascript'src='/js/test.js?"+Math.random()+"'></scr"+"ipt>");
禁用页面缓存的几种方法(静态和动态)
1、在Asp页面首部<head>加入以下是引用片段:
Response.Buffer=True
Response.ExpiresAbsolute=Now()-1
Response.Expires=0
Response.CacheControl="no-cache"
Response.AddHeader"Pragma","No-Cache"
2、在HtML代码中加入
以下是引用片段:
<HEAD>
<METAHTTP-EQUIV="Pragma"CONTENT="no-cache">
<METAHTTP-EQUIV="Cache-Control"CONTENT="no-cache">
<METAHTTP-EQUIV="Expires"CONTENT="0">
</HEAD>
3、在重新调用原页面的时候在给页面传一个参数href="****.asp?random()"
前两个方法据说有时会失效,而第三种则是在跳转时传一个随机的参数!因为aspx的缓存是与参数相关的,如果参数不同就不会使用缓存,而会重新生成页面,每次都传一个随机的参数就可以避免使用缓存。这个仅适用于asp&asp.net
4、在jsp页面中可使用如下代码实现无缓存:
以下是引用片段:
response.setHeader("Cache-Control","no-cache");//HTTP1.1
response.setHeader("Pragma","no-cache");//HTTP1.0
response.setDateHeader("Expires",0);//preventscachingattheproxyserver
这些代码加在<head></head>中间具体如下
以下是引用片段:
<head>
<%
response.setHeader("Cache-Control","no-cache");//HTTP1.1
response.setHeader("Pragma","no-cache");//HTTP1.0
response.setDateHeader("Expires",0);//preventscachingattheproxyserver
%>
</head>
5、window.location.replace("WebForm1.aspx");
参数就是你要覆盖的页面,replace的原理就是用当前页面替换掉replace参数指定的页面。
这样可以防止用户点击back键。使用的是javascript脚本,举例如下:
a.html
以下是引用片段:
<html>
<head>
<title>a</title>
<scriptlanguage="javascript">
functionjump(){
window.location.replace("b.html");
}
</script>
</head>
<body>
<ahref="javascript:jump()">b</a>
</body>
</html>
b.html
以下是引用片段:
<html>
<head>
<title>b</title>
<scriptlanguage="javascript">
functionjump(){
window.location.replace("a.html");
}
</script>
</head>
<body>
<ahref="javascript:jump()">a</a>
</body>
</html>
前4种只是清空了cache,即存储在TemporaryInternetFiles文件夹中的临时文件,而第五种则是使用跳转页面文件替换当前页面文件,并没有清空cache,也就是说TemporaryInternetFiles产生了相关的临时文件,两者搭配使用真是清空缓存,必备良药。正好我这里有了记录,所以常来看看哦。
我用的是在地址后加Math.random()!!!!!!!!!!!使得地址重新调用服务器,而不是使用IE缓存。