2013-10-31 82 views
0

在我的一个Jquery插件应用程序中,我有一个窗口打开一个JSP页面显示来自数据库的行。在Internet Explorer中的JSP页面缓存

在Internet Explorer中,当我运行的应用程序后,我开始了第一次,所有的该页面不提琴手插件显示所有从数据库中的行,直到我Clear Cache时间时除外。完成此操作后,所有行都会正确显示,并且在某些问题再次发生之后。

在这个JSP页面中,我有以下但它没有帮助。

<META HTTP-EQUIV="Pragma" CONTENT="no-cache"> 
<META HTTP-EQUIV="Expires" CONTENT="-1"> 

存在对servlet的调用,但doGet方法不是从JSP调用的。

我该如何解决这个问题?这个问题只发生在Internet Explorer

回答

1

你可以尝试,而不是在HTML标记做它,做它在JSP:

response.setHeader("Cache-Control", "no-cache"); 

尝试其他的方法,如:

response.setHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0"); 

如果这是只是作为用户的一个问题,一定要设置IE来拉动页面的新版本“每次访问页面”,而不是默认设置“自动”,这不能很好地工作。 (在IE8中,工具 - > Internet选项 - >浏览历史部分,设置按钮。)

此外,当通过Ajax调用页面或使用Javascript打开窗口时,您可以向URL添加一个额外参数,该参数只是一个时间戳或随机数来诱使IE将该请求作为新请求处理。

+0

感谢您指出这一点。我已经尝试在这篇文章中提到http://stackoverflow.com/questions/49547/making-sure-a-web-page-is-not-cached-across-all-browsers/2068407#2068407。我已经使用HML选项,因为它没有缓存,我仍然在测试。顺便优先使用HTML或JSP?你提到的有关向URL添加额外参数的内容,你是否有这样的例子? – user75ponic

+1

当你像上面那样通过JSP设置缓存时,它将作为在HTML解析之前读取的HTTP标头的一部分发送,我认为标头优先于HTML元标签。添加额外的参数,我只是说,如果你的网址是go.jsp?id = 1,那么让它go.jsp?id = 1&trick = 12345678其中12345678是一个时间戳或随机数,你可以用Javascript生成 – developerwjk

+0

developerwjk我会尝试这种方法。谢谢 – user75ponic