Service Worker — 實(shí)現(xiàn)離線應(yīng)用

用于離線緩存

可以用來實(shí)現(xiàn)離線應(yīng)用,本質(zhì)上充當(dāng)應(yīng)用程序、瀏覽器和網(wǎng)絡(luò)之間的代理服務(wù)器。

用于實(shí)現(xiàn)離線緩存時(shí),它攔截 web 應(yīng)用的一切請(qǐng)求,然后判斷哪些可以直接返回緩存中的內(nèi)容,哪些請(qǐng)求要發(fā)送到服務(wù)器。

取代 AppCache,能更精細(xì)控制。

其它使用場(chǎng)景

service worker 是注冊(cè)在指定源和路徑下的事件驅(qū)動(dòng)的worker。

它工作在 worker 上下文。相對(duì)于驅(qū)動(dòng)應(yīng)用的主 JavaScript 線程,它工作在其它線程中,因此不會(huì)造成阻塞。

所以它還有很多其他的應(yīng)用場(chǎng)景,例如:

  • 后臺(tái)數(shù)據(jù)同步,即使沒有用戶訪問,也能更新緩存
  • 集中更新計(jì)算成本高的數(shù)據(jù),這樣多個(gè)頁面就可以利用同一種數(shù)據(jù)
  • 自定義模板用于特定url模式
  • 性能增強(qiáng),比如預(yù)取用戶可能需要的資源,比如相冊(cè)中的后面數(shù)張圖片
  • 響應(yīng)推送,向用戶發(fā)送內(nèi)容更新的推送消息

注意

  • 出于安全考量,Service workers只能由HTTPS承載。為了便于開發(fā),localhost 也被認(rèn)為是安全源
  • 兼容性

使用

參考文章

Service Worker API
使用 Service Workers

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容