有没有一种方法可以清除用户浏览器中的页面,或者说不使用缓存?

时间: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命令。这是一篇文章,显示了执行此操作的正确方法。

忽略所有告诉我们使用&lt;meta>元素或者Pragma的人。它们非常不可靠。我们需要设置适当的HTTP标头。此处提供了有关如何确定适合HTTP标头的很好的教程。我们可能只需要Cache-Control:no-cache,但请阅读本教程,因为有许多特定于项目的原因,我们可能想要不同的东西。

可以通过确保根据需要为Reponse.cachecontrol,response.expires等设置正确的值来完成。该链接可能有助于理解它们的含义。 http://aspjavascript.com/lesson07.asp