有没有一种方法可以清除用户浏览器中的页面,或者说不使用缓存?
时间:2020-03-06 14:32:52 来源:igfitidea点击:
我可以使用经典ASP中的命令告诉浏览器不要从其缓存中拉出页面,或者不缓存或者清除页面的缓存吗?
解决方案
如果你把
Response.Expires = -1
在经典的ASP页中,它将指示浏览器不要缓存内容。如果用户单击"后退"或者以其他方式导航到该页面,则浏览器将从服务器刷新页面。
这是一篇很好的文章,介绍了如何在浏览器之间进行操作。
http://www.htmlgoodies.com/beyond/reference/article.php/3472881
与ASP不相关,这是一个HTTP问题。我们可以通过修改http缓存的某些方面(例如Cache-Control,etag,Expires等)来实现。阅读RFC2616尤其是HTTP中的缓存并设置适当的标头。
我们可以使用HTML元标记:
<meta http-equiv="Pragma" content="no-cache" /> <meta http-equiv="Expires" content="Fri, 01 Jan 1999 1:00:00 GMT" /> <meta http-equiv="Last-Modified" content="0" /> <meta http-equiv="Cache-Control" content="no-cache, must-revalidate" />
或者,我们可以使用ASP响应标头:
<% Response.CacheControl = "no-cache" Response.AddHeader "Pragma", "no-cache" Response.Expires = -1 %>
由于不同的浏览器处理缓存的方式,因此需要同时使用Expires和no-cache命令。这是一篇文章,显示了执行此操作的正确方法。
忽略所有告诉我们使用<meta>
元素或者Pragma
的人。它们非常不可靠。我们需要设置适当的HTTP标头。此处提供了有关如何确定适合HTTP标头的很好的教程。我们可能只需要Cache-Control:no-cache
,但请阅读本教程,因为有许多特定于项目的原因,我们可能想要不同的东西。
可以通过确保根据需要为Reponse.cachecontrol,response.expires等设置正确的值来完成。该链接可能有助于理解它们的含义。 http://aspjavascript.com/lesson07.asp