web 开发之js---页面缓存, jsp 缓存, html 缓存, ajax缓存,解决方法
有关页面缓存问题.这个问题上网找了好多.但发觉各种解决方法,都彼此分离,没有一篇统一的解决方法,本人近日,也遇到了页面缓存的问题,根据网上各页面缓存的解答,做了一个总结。
1.服务器端缓存的问题, 防止JSP页面缓存:
- <%
- // 将过期日期设置为一个过去时间
- response.setHeader("Expires", "Sat, 6 May 1995 12:00:00 GMT");
- // 设置 HTTP/1.1 no-cache 头
- response.setHeader("Cache-Control", "no-store,no-cache,must-revalidate");
- // 设置 IE 扩展 HTTP/1.1 no-cache headers, 用户自己添加
- response.addHeader("Cache-Control", "post-check=0, pre-check=0");
- // 设置标准 HTTP/1.0 no-cache header.
- response.setHeader("Pragma", "no-cache");
- %>
当然,每一个页面都包含这些代码会很繁琐,可以通过自定义过滤器(Filter)的方法来处理相关的页面
2.防止html页面缓存
- <meta http-equiv="pragma" content="no-cache">
- <meta http-equiv="cache-control" content="no-cache">
- <meta http-equiv="expires" content="0">
3.防止Ajax缓存
如果,你的页面,已经设置了防止JSP,HTML的页面缓存,但发觉页面缓存,始终存在,就要考虑是否Ajax造成的页面缓存了。
1)设置了,如上1,2之后
Ajax缓存,产生的原因是:request, url的地址上:
IE中如果XMLHttpRequest提交的URL与历史一样则使用缓存,根本不向服务器端提交。因此无法取到刚提交的数据。
针对ajax,需要如下设置:
方法一:加时间戳 var url = BaseURL + "&timeStamp=" + new Date().getTime();
方法二:加随机数 var url = BaseURL + "&r=" + Math.random();
总结:原引(http://www.javaeye.com/topic/150162)
在jsp页面中,光是使用html的<meta> tag是无法禁止缓存的。一定要加上
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", 0);
有人肯定会说,这个跟html的tag设置没有不同啊。的确,我也觉得,但实践证明,没有这几句,光靠html tag不行。
所以当action会返回页面时,有以下这两种情况:
a,返回的页面没有写上上面的禁止cache的语句(或者只写了html tag)。IE存储的是URL link + page result(cache eabled)。这也就是导致了之前为什么还会有cache的原因
b,返回的页面写上了禁止cache语句 。IE存储的是URL link + page result(cache disabled)。这样才能够实现到我们想要的目的。每次都会真正的发出request。
总结:页面缓存没有统一的解决方法,要具体问题具体分析.
http://blog.csdn.net/oklzh/article/details/4445722
http://www.blogjava.net/JAVA-HE/archive/2008/11/25/242420.html js write()
最新文章
- linux内核分析作业6:分析Linux内核创建一个新进程的过程
- wpf,离线状态下部分功能不可用。
- SQLProfiler_SQL抓包
- Java注解的使用
- SpringMVC 和Struts2的区别
- 各个 Maven仓库 镜像(包括国内)
- 基于Linux的集群系统(八)--转
- good bye 2015 B - New Year and Old Property
- Tomcat架构(三)
- VS2013安装过程截图
- eclipse svn插件安装
- MYSQL ERROR 1045 (28000): Access denied for user &#39;neeky&#39;@&#39;Nee&#39; (using password: YES)
- jQuery选择器(添加节点及删除节点及克隆及替换及包装)第九节
- java基础(一) 深入解析基本类型
- .net 获取时间十二进制与二十四进制
- VS OpenCV imread imwrite nameWindow等相关报错问题
- C# 创建数据库和表
- 面试北京XX数通总结
- Scrapy 框架 安装 五大核心组件 settings 配置 管道存储
- WPF窗体の投影效果
热门文章
- GIT的简介
- 如何将已经安装从chrome扩展程序导出备份为.CRX文件?
- 爬虫简单之二---使用进程爬取起点中文网的六万多也页小说的名字,作者,等一些基本信息,并存入csv中
- 爬虫app信息抓取之apk反编译抓取
- vs2015 添加行件
- 81. Spring Boot集成JSP疑问【从零开始学Spring Boot】
- Android版网易云音乐唱片机唱片磁盘旋转及唱片机机械臂动画关键代码实现思路
- FZU-2148-Moon Game,,几何计算~~
- CodeForces - 356A Knight Tournament
- Spring4 基本使用