Worker
Hinweis: Diese Funktion ist in Web Workers verfügbar, mit Ausnahme von 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 # dedicated-workers-and-the-worker-interface |
Browser-Kompatibilität
Report problems with this compatibility data on GitHubdesktop | mobile | server | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Worker | ||||||||||||||
Worker() constructor | ||||||||||||||
Support for ECMAScript modules | ||||||||||||||
Strict MIME type checks for worker scripts | ||||||||||||||
options.name parameter | ||||||||||||||
options.type parameter | ||||||||||||||
error event | ||||||||||||||
message event | ||||||||||||||
messageerror event | ||||||||||||||
postMessage | ||||||||||||||
options.includeUserActivation parameter | ||||||||||||||
terminate | ||||||||||||||
Available in workers |
Legend
Tip: you can click/tap on a cell for more information.
- Full support
- Full support
- Partial support
- Partial support
- No support
- No support
- Non-standard. Check cross-browser support before using.
- See implementation notes.
- Has more compatibility info.
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