2011-10-29 57 views
1

我有2頁在一個asp.net網站:爲什麼生命週期不運行

  • 第1頁包含的對象。
  • 第2頁包含有關其中一個對象的信息。

有些東西我不明白,我希望你們中的一些人能解釋它。

我點擊頁面1上的一個對象並顯示在頁面2上,但是當我點擊瀏覽器中的後退按鈕時,oninit,oninit和evertything不會在頁面1上調用。有人知道爲什麼嗎?

回答

0

點擊「返回」不會重新提交GET請求到服務器,它只是返回您的緩存副本。

1

當您單擊瀏覽器上的「返回」按鈕時,請求通常不會被重新提交。它實際上是上一頁的緩存版本。

您可以添加標籤的HTML告訴瀏覽器不緩存頁:

<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE"> 
<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE"> 

這些標籤應根據HTML規格來一起使用:

http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.32

當在請求消息中存在no-cache指令時,如果我的應用程序應該向原始服務器轉發請求,即使是 t有一個正在被請求的緩存副本。這個pragma 指令具有與no-cache cache-directive(參見 第14.9節)相同的語義,並且在此定義爲與HTTP/1.0的 向後兼容。當無緩存 請求被髮送到不知道與HTTP/1.1兼容的服務器時,客戶端應該包括這兩個頭字段。

ASP.net有它下面看到自己的緩存控制:

MSDN頁面緩存:http://msdn.microsoft.com/en-us/library/w9s3a17d.aspx

MSDN ASP.net緩存:http://msdn.microsoft.com/en-us/library/xsbfdd8c.aspx

相關問題