2016-05-04 24 views
0

我並不真正熟悉所有允許您管理客戶端緩存的元,所以我試圖用HTTP頭「過期」做一個簡單示例HTTP頭「過期」不會渲染緩存中的頁面

用下面的代碼:

<!DOCTYPE html> 
<html> 
    <head> 
      <meta charset="utf-8" /> 
      <meta http-equiv="expires" content="mon, 18 Jul 2016 1:00:00 GMT" /> 
      <title>MY TITLE</title> 
    </head> 

    <body> 
MY BODY 
    </body> 

</html> 

當我加載頁面的第一次(緩存之前清零)。頁面保存在緩存中,但是當我用「我的BODY2」更新我的身體並重新加載頁面時,頁面顯示「我的身體2」。自從2016年7月到期後,瀏覽器應該從緩存中取回頁面(「我的身體」),不是嗎?

謝謝你幫我把一些光對這個問題

回答

1

這取決於你如何重新加載頁面。

你基本上已經三個選項:

  1. 瀏覽到另一個頁面,然後返回。這應該使用緩存。
  2. 按F5或重新載入但是。這是一個明確的重新加載,因此會檢查服務器是否有新版本 - 即使它被緩存了 - 如果有更新的版本,就下載它。
  3. 強制重新加載(在某些瀏覽器中按Ctrl + F5)。這表示忽略緩存並從頭開始下載(即使緩存版本與服務器將發送給您的緩存版本相同)。

我懷疑你已經做了選項2,並沒有意識到這將檢查服務器,並假定它會使用緩存,如果仍然有效。它實際上與服務器檢查的原因是,當用戶懷疑的內容發生了變化,或者想重新下載(例如,如果頁面沒有正確渲染)重載經常做。

還應該指出的是,在HTML元頭是不是由服務器出於各種原因,包括瀏覽器支持的理由成立HTTP響應頭爲好。

最後,值得開放開發者工具(例如Chrome中的F12)和檢查網絡標籤以查看發生了什麼,但在這種情況下,確保在打開時沒有「禁用緩存」由於大多數開發人員在開發時不想使用緩存,因此Chrome中的默認設置)。