2009-07-22 81 views
0

至少在Chrome中,當我點擊後退按鈕時,它實際上不會重新加載頁面,它只是使用存儲的副本我猜。我怎樣才能確保當有人這樣做,頁面重新加載?確保頁面重新加載

回答

2

在PHP中你可以這樣做:

header('Expires: Mon, 20 Dec 1998 01:00:00 GMT'); 
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT'); 
header('Cache-Control: no-cache, must-revalidate'); 
header('Pragma: no-cache'); 

然而,發送的報頭的名稱將是任何服務器端編程語言一樣,他們都最終會通過HTTP客戶端。

請參閱維基百科的List of HTTP Headers以獲取有關這些解決方案的信息。

0

如果你在asp.net世界,我相信你應該需要做的是

Response.Cache.SetCacheability(HttpCacheability.NoCache) 

在你的Page_Load

2

我還沒有嘗試過,但你可以嘗試發送用您的文件緩存控制HTTP標頭。例如,在PHP:

header('Cache-Control: no-cache,no-store,max-age=0'); 

這會告訴你的瀏覽器(和緩存沿途)不緩存在任何情況下這個文件。但是單擊後退按鈕傳遞前一個文件不一定被認爲是緩存,因此可能會忽略這些標頭。

如果你真的想避免後退按鈕,你可以嘗試用Javascript來做到這一點。我真的不推薦這種方法 - 你應該退一步想想你爲什麼要這樣做。這就是說,像這樣的代碼在你的HTML身體應該工作:

<input type="hidden" id="back_button" value="0" /> 
<script> 
var bb = document.getElementById('back_button'); 
if (bb.value !== '0') { 
    location.href = location.href + '?rand=' + parseInt(Math.random()*9999); 
} 
bb.value = '1'; 
</script> 

這將打開當前網頁,但與附加到任何胸圍高速緩存器「蘭特」查詢字符串參數。