Worker
Hinweis: Dieses Feature ist verfügbar in Web Workers, außer in Service Workers.
Das Worker
-Interface der Web Workers API repräsentiert eine Hintergrundaufgabe, die über ein Skript erstellt werden kann und Nachrichten an ihren Ersteller zurücksenden kann.
Ein Worker wird erstellt, indem der Worker("path/to/worker/script")
-Konstruktor aufgerufen wird.
Worker können selbst neue Worker erstellen, solange diese Worker vom gleichen Origin wie die übergeordnete Seite gehostet werden.
Beachten Sie, dass nicht alle Schnittstellen und Funktionen für Web-Worker verfügbar sind. Siehe Funktionen und Klassen, die Web Workern zur Verfügung stehen für Details.
Konstruktoren
Instanzeigenschaften
Erbt Eigenschaften von seinem übergeordneten Objekt, EventTarget
.
Instanzmethoden
Erbt Methoden von seinem übergeordneten Objekt, EventTarget
.
Worker.postMessage()
-
Sendet eine Nachricht – bestehend aus einem beliebigen JavaScript-Objekt – an den inneren Bereich des Workers.
Worker.terminate()
-
Beendet den Worker sofort. Dies lässt den Worker seine Operationen nicht abschließen; er wird sofort gestoppt.
ServiceWorker
-Instanzen unterstützen diese Methode nicht.
Ereignisse
error
-
Tritt auf, wenn im Worker ein Fehler auftritt.
message
-
Tritt auf, wenn der übergeordnete Worker eine Nachricht von diesem Worker erhält.
messageerror
-
Tritt auf, wenn ein
Worker
-Objekt eine Nachricht erhält, die nicht deserialisiert werden kann.
Beispiel
Der folgende Code-Schnipsel erstellt ein Worker
-Objekt mit dem Worker()
-Konstruktor und verwendet anschließend das Worker-Objekt:
const myWorker = new Worker("/worker.js");
const first = document.querySelector("input#number1");
const second = document.querySelector("input#number2");
first.onchange = () => {
myWorker.postMessage([first.value, second.value]);
console.log("Message posted to worker");
};
Für ein vollständiges Beispiel siehe unser Grundlegendes Beispiel für dedizierte Worker (dedizierten Worker ausführen).
Spezifikationen
Specification |
---|
HTML Standard # dedicated-workers-and-the-worker-interface |
Browser-Kompatibilität
BCD tables only load in the browser
Die Unterstützung variiert je nach Worker-Typ. Siehe die Seite des jeweiligen Worker-Typs für spezifische Details.
Verhalten bei Cross-Origin-Worker-Fehlern
In frühen Versionen der Spezifikation löste das Laden eines Cross-Origin-Worker-Skripts einen SecurityError
aus. Heutzutage wird stattdessen ein error
-Ereignis ausgelöst.
Siehe auch
- Verwendung von Web Workern
- Funktionen und Klassen, die Web Workern zur Verfügung stehen
- Andere Arten von Workern:
SharedWorker
und Service Worker. OffscreenCanvas
-Schnittstelle