如何清除浏览器缓存?
来源:互联网 发布:洗衣机 知乎 编辑:程序博客网 时间:2024/05/01 17:32
web开发中经常遇到一些很奇怪的问题,例如,发现了问题,改了脚本,结果发布后,问题依然存在,但在服务器上一看,发布的脚本确实改了!!最后才发现,是浏览器缓存在作怪!!
现在讨论几种清除浏览器缓存的方法。
一种原理是HTTP Header 参数Cache-Control来清空缓存,另一种是利用URL上添加查询字符串来欺骗浏览器强制从服务端读取数据,避免缓存。
1利用HTTP协议清空
Cache-Control
的参数包括:
max-age=
[单位:秒 seconds] — 设置缓存最大的有效时间. 类似于Expires
, 但是这个参数定义的是时间大小(比如:60)而不是确定的时间点.单位是[秒 seconds].s-maxage=
[单位:秒 seconds] — 类似于max-age
, 但是它只用于公享缓存 (e.g., proxy) .public
— 响应会被缓存,并且在多用户间共享。正常情况, 如果要求 HTTP 认证,响应会自动设置为 private.private
— 响应只能够作为私有的缓存(e.g., 在一个浏览器中),不能再用户间共享。no-cache
— 响应不会被缓存,而是实时向服务器端请求资源。这一点很有用,这对保证HTTP 认证能够严格地禁止缓存以保证安全性很有用(这是指页面与public结合使用的情况下).既没有牺牲缓存的效率,又能保证安全。no-store
— 在任何条件下,响应都不会被缓存,并且不会被写入到客户端的磁盘里,这也是基于安全考虑的某些敏感的响应才会使用这个。must-revalidate
— 响应在特定条件下会被重用,以满足接下来的请求,但是它必须到服务器端去验证它是不是仍然是最新的。proxy-revalidate
— 类似于must-revalidate
,但不适用于代理缓存.
在网页head中添加
<meta http-equiv="pragma" content="no-cache" /> <meta http-equiv="content-type" content="no-cache, must-revalidate" /> <meta http-equiv="expires" content="Wed, 26 Feb 1997 08:21:57 GMT"/>使用asp.net输出的可以使用
Response.Buffer = True ;Response.ExpiresAbsolute = Now() - 1 ;Response.Expires = 0 ;Response.CacheControl = "no-cache" ;Response.AddHeader "Pragma", "No-Cache" ;
2添加查询字符串情况
一般有两种方式,添加随机数,添加时间错
例如添加随机数
document.write("<script src='test.js?rnd="+Math.random()+"'></s"+"cript>")添加时间戳
url: "../SurveyGetRecordData.aspx?date="+(new Date().getMilliseconds())
其实是很简单,还是使用查询字符串,添加了一个类似版本号的查询字符串,如果修改了,就把这参数改变,否则就不改,这样,就可以在需要时缓存,不需要时不缓存了。
例如:
<script type="text/javascript" src="../jquery-easyui/jquery-1.8.0.min.js?ver=1711"></script>
1 0
- 浏览器如何清除缓存
- 如何清除浏览器缓存?
- 如何清除浏览器的缓存
- 如何清除浏览器的缓存
- 如何清除eclipse内置浏览器缓存?
- 搜狗浏览器如何清除浏览器缓存--小白
- 强制浏览器清除缓存
- Domino清除浏览器缓存
- 清除浏览器中的缓存
- 清除浏览器缓存
- 清除浏览器缓存
- 前端清除浏览器缓存
- 前端清除浏览器缓存
- 清除浏览器的缓存
- 怎么清除浏览器缓存
- 清除浏览器缓存
- 清除浏览器客户端缓存
- 清除浏览器缓存
- 百度地图之SDK定位
- VPS简介
- win7文件夹导航栏自动展开
- 装修后·工程竣工之最后验收
- 移植Free BSD TCP/IP stack到dpdk-架构
- 如何清除浏览器缓存?
- C# 管理WinNt 帐号
- php ob_start 后门
- 关于web前端(知乎上收集)
- QOS相关协议规范
- CSS技巧:word-wrap同word-break的区别
- Android的Matrix图像变化原理
- RedoLog Checkpoint 和 SCN关系
- android中Dialog和PopupWindow的区别