當我第一次聽到這些術語時,我想,好吧,他們正在用單獨的線程做同樣的事情。那為什麼我們需要這兩個術語?
但說實話,這兩個術語及其行為方式之間存在巨大差異。
會盡力詳細解釋。
這兩者之間的共同點是
網路工作者
服務人員
Service Worker 的生命週期
1。報名
if ('serviceWorker' in navigator) { // wrap it in try/catch / promisses await navigator.serviceWorker.register('/service-worker.js') }
2。安裝
下面的程式碼我們需要將其寫入service-worker.js
self.addEventListener('install', (event) => { // do your operations })
3。啟動
self.addEventListener('activate', (event) => { // Do your Operation })
4。空閒
5。取得/訊息
self.addEventListener('fetch', (event) => { // Do your Opeation })
6。終止
它將讓服務人員保持很長時間。
範例:-
在 chrome 中打開此鏈接,您將看到許多 Service Worker 掛起,您可以執行很多操作,例如檢查/啟動和發送訊息。
chrome://serviceworker-internals/
即使瀏覽器關閉,我們如何喚醒服務工作人員。
注意:-
對於這個具體我們可以使用push來喚醒,但是這個使用必須給Browser一個Notification權限,否則沒辦法。
當瀏覽器仍然開啟時,其他方法也是相關的
1。取得事件
self.addEventListener('fetch', event => { // Handle fetch event });
2。留言
self.addEventListener('message', (event) => { // Handle message Event })
3。推
self.addEventListener('push', (event) => { // Handle Push Event })
4。同步事件
self.addEventListener('sync', (event) => { // handle background Sync Event })
參考
以上是Web Worker 與 Service Worker的詳細內容。更多資訊請關注PHP中文網其他相關文章!