最近看到了 Service Workers 這個東西,它可以根據配置為使用者緩存網站靜態與動態資源:截獲使用者的所有網路請求,根據緩存配置來決定是從緩存還是網路獲取相應資源,從而可以極大提高網頁的載入速度。優點有可定制性高、不需要服務端支持、效果顯著。
最後的效果就是當你第二次訪問我的網站時只會載入大約 80k 的資源(除去 AdSense 的情況下),這其中包括了所有圖片和音頻視頻,這 80k 主要是 HTML 和我使用的 DPlayer 的 API。
甚至可以在斷開網路時訪問(剪斷網線試試吧):
當然局限性也是有的:
只支持 HTTPS,因為可以截獲使用者的網路請求,需要在一個安全的環境。
兼容性不太好,點擊查看兼容性報告,目前只有 Chrome Firefox Opera 和部分 Android 瀏覽器 支持。
使用方法網上有很多教程,這裡不贅述了,推薦這幾篇吧:
使用 service worker+sw-precache 實現網站加速