2013-02-01 123 views
4

我正在重讀this great article,偶然發現了一些我以前沒有注意到的東西,這就是作者所說的懶惰緩存。準確地說,這裏是上下文:什麼是「懶惰緩存」?

他們知道如何使用錯誤文檔做惰性緩存嗎?

什麼是惰性緩存以及錯誤文檔與此相關的方式?我一直在使用這些短語重新編寫和分離,但沒有成功。

有人能解釋一下是什麼以及在哪裏使用?我認爲這只是一個不同的名稱,我不知道是什麼。

P.S.如果你知道如何更好地標記這個問題,請這樣做!

回答

5

「錯誤文檔」可能只是指HTTP狀態碼,特別是304 Not Changed狀態。有人可能稱之爲'懶惰緩存',因爲在靜態網站上,您通常不需要進行任何設置。

如何將一個靜態網站的工作:

  1. 瀏覽器請求的URL。
  2. 服務器返回響應,包括Last-modified: [last modified date of static file]標頭。
  3. 瀏覽器稍後請求相同的URL,其中包括If-Modified-Since: [last modified date from first request]請求標頭。
  4. 服務器返回304 Not Modified響應。

由於動態頁面顯然不能依賴文檔的修改日期,因此您必須竭盡全力實施此類緩存。它的工作方式完全一樣,但不是依靠HTTP服務器自動執行任何操作,而是根據數據庫值(或其他值)計算出日期,並在每次響應時發送該日期。然後,當您收到包含If-Modified-Since標題的請求時,可以在計算最後修改日期所需的內容後跳過任何處理,然後發送304 Not Modified響應,這可能會節省大量帶寬和CPU週期。

這裏的an example in PHP讓你開始,如果這就是你要找的。

+0

謝謝,我不確定它是否與304響應有關,因爲它確切地表示「錯誤文檔」,但它也可能是因爲這是一個很好的建議,賞金是你的。 –