Als ich zum ersten Mal von diesen Begriffen hörte, dachte ich: Okay, sie machen mit ihrem separaten Thread ungefähr das Gleiche. Warum brauchen wir dann diese beiden Begriffe?
Aber um die Wahrheit zu sagen, es gibt große Unterschiede zwischen diesen beiden Begriffen und ihrem Verhalten.
Ich werde versuchen, es im Detail zu erklären.
Die Gemeinsamkeiten dieser beiden sind
Web Worker
Servicemitarbeiter
Lebenszyklus eines Servicemitarbeiters
1. Anmeldung
if ('serviceWorker' in navigator) { // wrap it in try/catch / promisses await navigator.serviceWorker.register('/service-worker.js') }
2. Installation
Den folgenden Code müssen wir in service-worker.js
schreiben
self.addEventListener('install', (event) => { // do your operations })
3. Aktivierung
self.addEventListener('activate', (event) => { // Do your Operation })
4. Leerlauf
5. Abruf/Nachricht
self.addEventListener('fetch', (event) => { // Do your Opeation })
6. Kündigung
Es wird die Servicemitarbeiter sehr lange beschäftigen.
Beispiel:-
in Chrome. Öffnen Sie diesen Link. Dort werden Sie viele Servicemitarbeiter sehen, die hängen, und Sie können viele Dinge tun, wie zum Beispiel Inspizieren/Starten und eine Nachricht senden.
chrome://serviceworker-internals/
Wie wir Servicemitarbeiter aufwecken können, auch wenn der Browser geschlossen ist.
Hinweis:-
Für diesen speziellen Fall können wir Push zum Aufwecken verwenden, aber für diese Verwendung muss dem Browser die Benachrichtigungsberechtigung erteilt werden, sonst gibt es keine Möglichkeit.
Andere Möglichkeiten sind relevant, wenn der Browser noch geöffnet ist
1. Ereignis abrufen
self.addEventListener('fetch', event => { // Handle fetch event });
2. Nachricht
self.addEventListener('message', (event) => { // Handle message Event })
3. Drücken
self.addEventListener('push', (event) => { // Handle Push Event })
4. Synchronisierungsereignis
self.addEventListener('sync', (event) => { // handle background Sync Event })
Referenz
Das obige ist der detaillierte Inhalt vonWeb Worker vs. Service Worker. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!