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.
Gemeinsamkeit zwischen diesen beiden ist
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. Beendigung
Es wird die Servicemitarbeiter sehr lange beschäftigen.
Beispiel:-
in Chrome Wenn Sie diesen Link dort öffnen, werden Sie viele Servicemitarbeiter sehen, die hängen bleiben, und Sie können viele Dinge tun, wie z. B. Überprüfen/Starten und Senden einer Nachricht.
chrome://serviceworker-internals/
Wie wir Servicemitarbeiter aufwecken können, auch wenn der Browser geschlossen ist.
Notiz:-
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. Ereignis synchronisieren
self.addEventListener('sync', (event) => { // handle background Sync Event })
Referenz
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3