转载自:http://hi.baidu.com/andylu1988/item/616560237e965c1b2b0f1c8e
需求:页面每次打开时清除本页面的缓存。
页面打开时,由于缓存的存在,刚刚更新的数据有时无法在页面得到刷新,当这个页面作为模式窗口被打开时问题更为明显。
解决办法为:
(1) 用HTML标签设置HTTP头信息(部分人说:只有部分浏览器可以支持,而且所有缓存代理服务器都不支持,因为代理不解析HTML内容本身)
说明:HTTP头信息“Expires”和“Cache-Control”为应用程序服务器提供了一个控制浏览器和代理服务器上缓存的机制。HTTP头信息Expires告诉代理服务器它的缓存页面何时将过期。HTTP1.1规范中新定义的头信息Cache-Control可以通知浏览器不缓存任何页面。当点击后退按钮时,浏览器重新访问服务器已获取页面。如下是使用Cache-Control的基本方法:
1) no-cache:强制缓存从服务器上获取新的页面
2) no-store: 在任何环境下缓存不保存任何页面
HTTP1.0规范中的Pragma:no-cache等同于HTTP1.1规范中的Cache-Control:no-cache,同样可以包含在头信息中。
个人见解:因为存在不支持的情况,因此,是否可以在发送请求时,直接用代码加http头消息的方式去处理?这个可以后续验证
(2) 在需要打开的url后面增加一个随机的参数:
增加参数前:url=test/test.jsp
增加参数后:url=test/test.jsp?ranparam=random()
说明:因为每次请求的url后面的参数不一样,相当于请求的是不同的页面,用这样的方法来曲线救国,清除缓存。
【Html页面清除缓存】 个人见解:这种方式,在页面访问量比较小的时候,还是可以用的,但对于页面访问量比较大,并发量相对集中的时候,可能就会出现性能问题(比如说造成服务端缓存过大,有待验证)
推荐阅读
- JavaScript|JavaScript: BOM对象 和 DOM 对象的增删改查
- web前端笔记|web前端学习-第一天
- JAVA框架之路|spring-boot笔记-工程搭建(一)
- spring|Java学习笔记(SpringMVC)
- URL协议和HTTP协议
- Web服务器的环境