有关页面缓存问题.这个问题上网找了好多.但发觉各种解决方法,都彼此分离,没有一篇统一的解决方法,本人近日,也遇到了页面缓存的问题,根据网上各页面缓存的解答,做了一个总结。
1.服务器端缓存的问题,防止JSP页面缓存:
-
<%
-
//将过期日期设置为一个过去时间
-
response.setHeader("Expires","Sat,6May199512:00:00GMT");
-
//设置HTTP/1.1no-cache头
-
response.setHeader("Cache-Control","no-store,no-cache,must-revalidate");
-
//设置IE扩展HTTP/1.1no-cacheheaders,用户自己添加
-
response.addHeader("Cache-Control","post-check=0,pre-check=0");
-
//设置标准HTTP/1.0no-cacheheader.
-
response.setHeader("Pragma","no-cache");
-
%>
当然,每一个页面都包含这些代码会很繁琐,可以通过自定义过滤器(Filter)的方法来处理相关的页面
2.防止html页面缓存
-
<metahttp-equiv="pragma"content="no-cache">
-
<metahttp-equiv="cache-control"content="no-cache">
-
<metahttp-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。
总结:页面缓存没有统一的解决方法,要具体问题具体分析.
分享到:
相关推荐
用于ajax与jsp清除缓存,非常简单!
ajax缓存有好处,但也有坏处,缓存有时候会导致误操作,影响用户体验,若你的WEB项目不需要ajax缓存功能,可按下述方法来禁止ajax缓存。 一、在ASP中禁止ajax缓存: ‘放在ASP网页最开头部分 Response.expires=0 ...
AJAX实现的多人聊天室,使用ASP.NET做后台,数据使用缓存实现
ajax实现输入提示(类似百度和Google的输入提示) 用法非常简单: ...5、注意:这种方式是页面加载的时候就要调用js方法的,数据是一次性加载的,当用户查询的时候是不会查询数据库的,是查询js的缓存对象
OSCACHE 实现缓存功能,另不频繁修改资源页面得到更快响应; FILEUPLOAD 实现文件上传; 自行设计的文本分割功能模块以及特色CSS样式,靠大家慢慢发觉。由于本源码基本用于工作测试用,不足之处望指正赐教。 本项目...
要实现进度条的显示,就要知道两个参数,上传的大小和总文件的大小 ...小/总大小,计算上传的百分比,然后将此数据缓存起来,前端发送异步请求查询数据接口,用这个百分比控制div框的显示,就可以实现上传的进度条效果
OSCACHE 实现缓存功能,另不频繁修改资源页面得到更快响应; FILEUPLOAD 实现文件上传; 自行设计的文本分割功能模块以及特色CSS样式,靠大家慢慢发觉。由于本源码基本用于工作测试用,不足之处望指正赐教。 本项目...
OSCACHE 运用缓存技术使不经常更新页面得到更快响应,加速JSP速度 FILEUPLOAD 运用上传开源框架上传自定义图片,文件 MYSQL 分页功能 独立开发的小说分割系统功能,以及多种CSS样式,特色源码还需大家慢慢发觉。 ...
OSCACHE 实现缓存功能,另不频繁修改资源页面得到更快响应; FILEUPLOAD 实现文件上传; 自行设计的文本分割功能模块以及特色CSS样式,靠大家慢慢发觉。由于本源码基本用于工作测试用,不足之处望指正赐教。 本项目...
【jstl-jsp标准标签库】 taglibs-standard-jstlel-1.2.5.jar 【springMVC核心】 spring-web-4.0.0.RELEASE.jar spring-webmvc-4.0.0.RELEASE.jar 【数据校验】 hibernate-validator-5.0.0.cr2.jar ...
4、修复发报告时,在非ajax下页面显示没有样式的问题。 5、修复后台在线列表定制技巧提示话语错误的问题。 6、修复个人信息中关于同意接收论坛通知,此项应该只对后台的论坛通知起作用。 7、修复附件下载权限...
经典例子,自己以前项目中用过的,必须10分的资源..............
采用Model II 架构,前台JSP/AJAX主要完成数据显示,Action类负责前台数据的接收和处理,DAO层完成数据库的查询、更新、删除、插入等操作,论坛对于常用数据使用了数据缓存,我们针对不同的类型数据设计了不同数据...
ajax调用的返回数据会被缓存,调用静态html ,即使把html修改了,IE依有可能然用原来的数据显示。 而firefox可以正常显示新的数据。 解决办法: prototype的GET中,设置 pars = “mod=readArticle&fid=’+$F(...
当页面使用ajax 提交表单时,默认页面是没有缓存历史记录功能的,于是写了一个基于js的cookie lis记录功能,类似于百度搜索后下次还能看到之前输入的数据。省去了大量重复录入工作。
完整版Java web开发教程PPT课件 Java开发进阶教程 第11章 AJAX实现(共11页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第12章 自定义mvc框架(共11页).pptx 完整版Java web开发教程PPT课件 Java开发...
2.ajax缓存问题,需要加入xmlHttp.setRequestHeader(”If-Modified-Since”,”0″);便可解决. 3.如果不是ajax提交,而设置了PrintWriter out = response.getWriter();则jsp会产生中文乱码. 4.ajax返回xml乱码的原因 ...
前端:JSP,css,JavaScript,JQuery,Ajax。 后端:Spring,SpringMVC,MyBatis 二、主要功能有: 1、系统管理员: 博客管理(写博客,修改博客,删除博客,博客查询); 博客类别管理(添加,修改,删除博客类别...