2013-07-22 54 views
5

如何防止瀏覽器在退出後使用頁面的緩存副本?註銷後瀏覽器後退按鈕

當用戶仍然退出時,他們仍然可以使用後退按鈕訪問前一頁。

據我所知,我們不能禁用後退按鈕(根據SO回答)。

目前我在不同的場景中有大量的頁面,所以我不能修改每一個頁面。

我曾嘗試

  1. 設置過期頭(做我需要設置每一個頁面上?另外,如果我做到這一點:瀏覽器緩存中的網頁內容是什麼?(因爲我需要的瀏覽器緩存內容如果用戶登錄))
  2. 我已經有一個輪詢系統(但仍然有延遲檢測)
  3. 基於Javascript的解決方案(它的工作原理,但仍然可以使用歷史選項導航或長按後退按鈕)

我真的被困在這裏,你能幫我解決問題嗎?

+1

爲什麼你想這樣做,他會做任何事情後,會話已結束,任何點擊,他將被拋出去...... –

+1

@先生我知道這一點。但我的客戶仍然認爲這是一個問題。 – Red

回答

5

我認爲這段代碼會幫助你,在父控制器構造函數中使用這段代碼。

//Log out Back 
header("Cache-Control: no-cache, no-store, must-revalidate"); // HTTP 1.1. 
header("Pragma: no-cache"); // HTTP 1.0. 
header("Expires: 0"); // Proxies. 
+0

你能解釋一下後面會發生什麼?如果他已登錄,我需要瀏覽器緩存內容。 – Red

+0

當您註銷網站時,它將清除緩存。當您登錄該網站時,緩存將自動獲取用戶登錄值。 –

+0

是爲特定網頁還是整個網域? – Red

0

這是鏈接全部回答。

http://www.codeproject.com/Tips/549347/Browser-Back-Button-Issue-After-Logout

我嘗試了上述所有解決方案,但瀏覽器不兼容。

所以更好的方法是做Ajax post或在頁面加載檢查會話var null或不。

此提示還有一個限制,當用戶單擊瀏覽器的後退按鈕時,由於執行WebMethod,後臺頁面顯示1秒或半秒。但可以在任何瀏覽器的所有版本中正常使用!