我有一个asp.NET应用程序,它有一个相当繁重的主页。除了同一页面上的操作外,该主页的内容很少被更改。
当用户按下浏览器中的“后退”按钮时,如何让浏览器从缓存中检索页面,而不是每次都联系服务器,强制它再次呈现页面?
谢谢,Jonas
答案 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页面的另一种方法是使用
在服务器端自己控制它 ASP.NET网页中的指令,如下所示:
<%@ OutputCache Duration="600" VaryByParam="None" %>
在最基本的情况下,@ OututCache控件将缓存渲染的ASP.NET页面指定的秒数(上例中为600),以便后续对该页面的请求将导致ASP.NET运行时服务已经呈现的页面版本给用户,而不是重新处理和重新呈现整个页面。但请注意,这不是特定于用户的。
有关页面输出缓存的更多信息(这可能是您将获得的最接近的内容):