jsp中如何避免客户端浏览器在刷新时,使用缓存的数据
来源:互联网 发布:seo盒子 编辑:程序博客网 时间:2024/05/22 13:55
在工作中,经常在jsp页面中看到下面类似的一段代码:
- response.setHeader("Cache-Control", "no-cache"); //HTTP 1.1
- response.addHeader("Cache-Control", "no-store"); //Firefox
- response.setHeader("Pragma", "no-cache"); //HTTP 1.0
- response.setDateHeader("Expires", -1);
- response.setDateHeader("max-age", 0);
代码的前三行的功能都是一样的,只是为了兼容多浏览器而做的处理,都是用来阻止浏览器缓存由jsp或者servlet动态生成的内容。下面是英文原文的解释:
This is used to prevent the browser from caching your dynamic content generated by a JSP or Servlet.
You set this attribute in the HTTP header of the response object which would tell the browser not to cache this content. So everytime you request the page again, the browser would make a new request, instead of showing you a cached page.
使用服务器端控制AJAX页面缓存:
response.setHeader( "Pragma", "no-cache" );
response.addHeader( "Cache-Control", "must-revalidate" );
response.addHeader( "Cache-Control", "no-cache" );
response.addHeader( "Cache-Control", "no-store" );
response.setDateHeader("Expires", 0);
单纯的使用 xmlhttp.setRequestHeader("Cache-Control","no-cache")无效。
Cache-Control头域
Cache-Control指定请求和响应遵循的缓存机制。在请求消息或响应消息中设置Cache-Control并不会修改另一个消息处理过程中的缓存处理过程。请求时的缓存指令包括no-cache、no-store、max-age、max-stale、min-fresh、only-if-cached,响应消息中的指令包括public、private、no-cache、no-store、no-transform、must-revalidate、proxy-revalidate、max-age。各个消息中的指令含义如下:
Public指示响应可被任何缓存区缓存。
Private指示对于单个用户的整个或部分响应消息,不能被共享缓存处理。这允许服务器仅仅描述当用户的部分响应消息,此响应消息对于其他用户的请求无效。
no-cache指示请求或响应消息不能缓存
no-store用于防止重要的信息被无意的发布。在请求消息中发送将使得请求和响应消息都不使用缓存。
max-age指示客户机可以接收生存期不大于指定时间(以秒为单位)的响应。
min-fresh指示客户机可以接收响应时间小于当前时间加上指定时间的响应。
max-stale指示客户机可以接收超出超时期间的响应消息。如果指定max-stale消息的值,那么客户机可以接收超出超时期指定值之内的响应消息。
response.setDateHeader("Expires", 0);
expires是response的一个属性
它可以设置页面在浏览器的缓存里保存的时间
超过设定的时间后就过期
过期后再次浏览该页面就需要重新请求服务器发送页面数据
如果在规定的时间内再次访问次页面
就不需从服务器传送 直接从缓存中读取
- jsp中如何避免客户端浏览器在刷新时,使用缓存的数据
- jsp中如何避免客户端浏览器在刷新时,使用缓存的数据
- 在php中如何使用浏览器的图片缓存?
- 使用Dojo实现页面不刷新提交数据时避免前台缓存的方法
- 使用ajax时浏览器何时缓存以及如何避免浏览器缓存
- jsp中如何获取客户端的浏览器和操作系统信息
- jsp中如何获取客户端的浏览器和操作系统信息
- jsp中如何获取客户端的浏览器和操作系统信息
- 如何避免因jsp刷新而重复提交数据
- 如何在VB中避免动态刷新图片时的闪烁问题
- 禁止客户端的浏览器缓存数据
- 在JSP中使用缓存
- 如何防止浏览器的缓存JSP页面
- 如何强制客户端刷新缓存
- IE浏览器中ajax使用缓存数据的问题
- 如何在点击浏览器前进、后退键时刷新页面而不读取缓存
- 如何在jsp中调用浏览器的打印功能
- 前端框架Bootstrap的Modal使用Ajax数据源,如何避免数据被缓存
- 2013-04-23期-创建索引
- 使用eclipse 、tomcat及maven发布项目的相关配置作用
- Android 拍照/相册 获取图片裁剪显示
- 2013-04-24期-索引内容查询
- C++回顾之static成员、static成员函数及类对象大小计算
- jsp中如何避免客户端浏览器在刷新时,使用缓存的数据
- 小记 第一签2014
- 2013-04-26期-索引内容修改、删除
- 内核中与驱动相关的内存操作之九(重映射)
- 关于CSC命令编译器csc.exe
- java实现webservice实例
- centos6.4安装vim7.3
- 微信公众平台开发(六) 翻译功能开发
- 三种东西永远不要放到数据库里