【发布时间】:2008-09-22 15:58:52
【问题描述】:
经典 ASP 中是否有一个命令可以用来告诉浏览器不要从它的缓存中拉取页面,或者不缓存,或者清除我页面的缓存?
【问题讨论】:
-
这是一篇关于如何跨浏览器执行此操作的好文章。 http://www.htmlgoodies.com/beyond/reference/article.php/3472881
标签: http asp-classic
经典 ASP 中是否有一个命令可以用来告诉浏览器不要从它的缓存中拉取页面,或者不缓存,或者清除我页面的缓存?
【问题讨论】:
标签: http asp-classic
您可以使用 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
%>
【讨论】:
与 asp 无关,这是一个 HTTP 问题。您可以通过修改 http 缓存的某些方面来做到这一点,例如 Cache-Control、etag、Expires 等。阅读 RFC2616 尤其是 Caching in HTTP 并设置适当的标头。
【讨论】:
忽略每个告诉你使用<meta> 元素或Pragma 的人。他们非常不可靠。您需要设置适当的 HTTP 标头。 here 提供了有关如何确定适合您的 HTTP 标头的一个很好的教程。 Cache-Control: no-cache 可能就是您所需要的,但请阅读本教程,因为有许多项目特定的原因可能会导致您想要不同的东西。
【讨论】:
如果你放
Response.Expires = -1
在您的经典 ASP 页面中,它将指示浏览器不要缓存内容。如果用户点击“返回”或以其他方式导航到页面,浏览器将从服务器刷新页面。
【讨论】:
可以通过确保根据需要为 Reponse.cachecontrol、response.expires 等设置正确的值来完成。此链接可能有助于理解它们的含义。 http://aspjavascript.com/lesson07.asp
【讨论】:
由于不同浏览器处理缓存的方式,Expires 和 no-cache 命令都需要使用。这是一个article,显示了正确的方法。
【讨论】: