2015-05-04 68 views
1

我們正在尋找一個漂亮而乾淨的解決方案來爲網站重新加載自動生成的瀏覽器緩存。考慮一個版本化的客戶端,如果新客戶端被釋放,需要緩存重新加載。使用清單重新加載瀏覽器緩存

有很多方法來強制重裝:

  1. 使用HTML5清單和 「applicationCache」

  2. 在JavaScript中使用時間戳 「腳本標籤」。

  3. 服務器:不同的HTML標頭「緩存控制:無緩存,必重新驗證」

然而,他們似乎不是非常乾淨的解決方案。我們不想提供HTMl applicationCache的離線解決方案。

問題是:有沒有辦法使用清單文件(或其他)給客戶端一個版本,如果版本改變了瀏覽器會自動重新加載他的緩存?可能使用HTML5 applicationCache,但我們不想使用該網站脫機並存儲所有內容。我們只是想告訴瀏覽器清除他生成的緩存。

如果我理解正確,這是不可能的,或者是與HTML5 applicationCache不同的用法。如果我錯了,請糾正我。

+0

有沒有可能在您的項目中使用PHP?您可以在PHP中設置過期的到期日期並自動刷新 –

+0

不,我們不在項目中使用PHP。我相信我們可以通過修改服務器的html頭來實現這一點,但我不認爲這應該是這樣。 – tkler

回答

1

一種常見的做法是:

  1. 有主HTML文件(例如,index.html)送達Cache-Control: no-cache, must-revalidatemaxage等(基本上,不要讓它被緩存)

  2. 在加載的資源名稱中使用版本號,例如script-v6.js,然後script-v7.js發生更改時,爲具有遠期標題的資源提供服務,以便可以長時間緩存它們

  3. 很明顯在開發中,我們只有簡單的文件名;版本號是由構建過程添加的,它可以完成所有其他構建工作,如縮小,合併文件等。