2013-04-11 88 views
7

我似乎有相反的問題,從最讓網友。我有一個很少更改的靜態頁面,我希望瀏覽器在用戶快速返回時不要重新加載該頁面。我一直無法找到任何簡單的規則列表,當瀏覽器在後退導航上重新加載時,以及什麼時候沒有。從重新加載頁面防止瀏覽器當用戶點擊後退

如果它的確與衆不同,我的URL有查詢字符串,並使用https://協議供應。

+0

爲什麼只在後退導航?如果用戶從歷史記錄中加載此頁面並且沒有更新?它不應該重新加載。 HTTP 304沒有修改狀態碼是你需要的:http://www.w3.org/Protocols/HTTP/HTRESP.html – user4035 2013-04-11 20:46:18

+0

這只是我不太關心的事情。我很好,只解決了背向導航的情況,因爲許多用戶點擊一個鏈接,如果他們沒有找到他們需要的東西,就快速回去。在這一點上有額外的服務器負載是我想要解決的問題。 – levik 2013-04-11 23:37:44

+0

您是否正在使用php腳本並想發送未修改的HTTP 304? – user4035 2013-04-12 07:19:19

回答

10

你不需要知道後退按鈕已被使用。只要告訴瀏覽器使用緩存控制標頭來緩存你的頁面。你會看到很多的來自谷歌的例子 - http cache control headers

具體來說,看看這些元標籤:

<meta http-equiv="CACHE-CONTROL" content="..." /> 
<meta http-equiv="EXPIRES" content="..." /> 

編輯:

下面是從谷歌搜索結果中的一個鏈接。我認爲它能夠很好地解釋這些頭文件的工作原理。 Increasing Application Performance with HTTP Cache Headers

有了這些標題,您可以指定多久緩存頁面; 10分鐘,30分鐘,小時,天等

+0

我想我正在尋找的是一個資源,它將列出不同瀏覽器在不同情況下如何承認這些標頭。例如,我記得過去查詢字符串的處理方式與某些瀏覽器的處理方式不同。 – levik 2013-04-11 23:34:00

+0

這就是爲什麼我將Google鏈接包含在內的原因。網上有大量關於此的信息。我從搜索中添加了一個資源給我的答案。它很好地解釋了這個例子。 – 2013-04-12 12:09:33

0

您是否嘗試過onpageshow事件的身體標記?

<script type="text/javascript"> 
    function caller() 
    { 
     return false; 
    } 
</script> 
</head> 

<body onpageshow="caller();"> 
</body> 

適用於大多數情況。

相關問題