2016-02-04 52 views

回答

13

服務工作者緩存API的一個主要優點是它比內置瀏覽器緩存提供更多的詳細控制。例如,您的服務人員可以在用戶第一次運行您的Web應用程序(包括他們尚未訪問的資產)時緩存多個請求。這將加速後續請求。您也可以實施自己的緩存控制邏輯,確保將被認爲重要的資產保存在緩存中,同時刪除使用不足的數據。

+4

與此相關的一條評論。如果使用緩存標頭緩存頁面上的元素,用戶觸發刷新將使瀏覽器跳過HTTP緩存。 SW提取事件將總是攔截一個請求,意味着您可以隨時從緩存中提供服務,如果您願意的話。 –

+0

@GauntFace事實上,它不僅僅是一個明確的「刷新」的開放標籤。隱式「刷新」(如將頁面加載到新選項卡中)將失敗,如果頁面緩存了標題並且設備處於脫機狀態。 –

0

主要區別在於控制。瀏覽器緩存驅動掉緩存控制頭,這是好的,直到它沒有。有各種策略來管理如何緩存網絡可尋址資源;私人,公共;生存時間等。

通過服務人員緩存,您可以以編程方式控制這些資產的持續保存方式。但這意味着你的負擔。

瀏覽器緩存是我認爲不可靠的。瀏覽器將根據設備存儲可用性自動清除資產。例如,iPhone用於忽略超過25kb的任何資源的緩存。今天,我認爲他們只是非常積極。

我知道Facebook團隊幾年前做了一項研究,發現只有25%的文件是基於標頭緩存的,他們期望瀏覽器緩存這些文件。這意味着有額外的網絡流量和服務器活動。

這就是爲什麼服務人員緩存是更好的選擇。不要去掉你的緩存標題,只是不要依賴它們。

相關問題