2009-07-23 95 views
0

我有一個asp.net應用程序,它有一個相當沉重的主頁。這個主頁的內容很少改變,除了在同一頁面上的動作。如何在瀏覽器中使用後退按鈕時控制重新加載?

當用戶在瀏覽器中按下「返回」按鈕時,如何讓瀏覽器從緩存中檢索頁面,而不是每次都聯繫服務器,迫使它再次呈現頁面?

謝謝,喬納斯

+2

請鍵入「返回」按鈕在搜索框中點擊這裏,你會發現約20個答案。 – 2009-07-23 11:09:13

回答

1

簡短的回答是:你不能。

我覺得你可以做的最接近的是包括一些HTML Meta tags在您的網頁,具體涉及高速緩存和到期的,如:

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

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

一旦你將這些內容包含在發送到客戶端瀏覽器的呈現網頁中,您只需希望瀏覽器在用戶單擊後退按鈕時顯示頁面的「緩存」版本,而不是激發另一個請求/響應週期給你的w eb服務器,從而導致您的網頁被重新請求並重新呈現。儘管如此,你將無法控制這一點,完全取決於瀏覽器如何處理它。不過,我相信大多數現代瀏覽器都會重新請求這個頁面。

以防止ASP.NET頁面的重新渲染另一種方法是使用ASP.NET網頁中的

@OutputCache

指令,這樣在服務器端控制這個自己:

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

在它的最基本,@OutputCache控制將緩存渲染的ASP.NET頁面中指定的秒數(600上面的例子),使該頁面的後續請求將導致ASP。 NET runti我爲用戶提供已經渲染的頁面版本,而不是重新處理和重新渲染整個頁面。但請注意,這不是用戶特定的。頁面輸出緩存

更多信息(這可能是你會得到最接近你以後):

Page Output Caching
The OutputCache

+0

因此,只要區分頁面的所有參數都包含在URL中,就可以使用OutputCache指令。我會試試看,謝謝:) – Joda 2009-07-23 11:38:36

相關問題