在浏览器中使用后退按钮时如何控制重新加载?

时间:2009-07-23 11:07:04

标签: asp.net browser

我有一个asp.NET应用程序,它有一个相当繁重的主页。除了同一页面上的操作外,该主页的内容很少被更改。

当用户按下浏览器中的“后退”按钮时,如何让浏览器从缓存中检索页面,而不是每次都联系服务器,强制它再次呈现页面?

谢谢,Jonas

1 个答案:

答案 0 :(得分:1)

简短的回答是:你不能。

我认为您最接近的方法是在您的网页中加入一些HTML Meta tags,特别是与缓存和过期相关的内容,例如:

<META HTTP-EQUIV="EXPIRES" CONTENT=" [some date/time in the future] ">

<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="PUBLIC">

一旦您将这些内容包含在发送到客户端浏览器的呈现网页中,您只需希望浏览器在用户单击后退按钮时显示页面的“缓存”版本而不是向您的Web服务器发起另一个请求/响应周期,从而导致您的网页被重新请求和重新呈现。但是,你无法控制它,这完全取决于浏览器如何处理它。我相信大多数现代浏览器都会重新请求页面。

防止重新呈现ASP.NET页面的另一种方法是使用

在服务器端自己控制它

@OutputCache

ASP.NET网页中的

指令,如下所示:

<%@ OutputCache Duration="600" VaryByParam="None" %>

在最基本的情况下,@ OututCache控件将缓存渲染的ASP.NET页面指定的秒数(上例中为600),以便后续对该页面的请求将导致ASP.NET运行时服务已经呈现的页面版本给用户,而不是重新处理和重新呈现整个页面。但请注意,这不是特定于用户的。

有关页面输出缓存的更多信息(这可能是您将获得的最接近的内容):

Page Output Caching
The OutputCache