Worker
Baseline
Widely available
*
This feature is well established and works across many devices and browser versions. It’s been available across browsers since Juli 2015.
* Some parts of this feature may have varying levels of support.
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 erzeugen, solange diese Worker unter demselben Ursprung wie die übergeordnete Seite gehostet werden.
Beachten Sie, dass nicht alle Schnittstellen und Funktionen für Web Worker verfügbar sind. Details finden Sie unter Funktionen und Klassen, die in Web Workern verfügbar sind.
Konstruktoren
Instanzeigenschaften
Erbt Eigenschaften von seinem Elternteil, EventTarget.
Instanzmethoden
Erbt Methoden von seinem Elternteil, 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 beenden; er wird sofort gestoppt.
ServiceWorker-Instanzen unterstützen diese Methode nicht.
Ereignisse
error-
Wird ausgelöst, wenn ein Fehler im Worker auftritt.
message-
Wird ausgelöst, wenn das übergeordnete Element des Workers eine Nachricht von diesem Worker erhält.
messageerror-
Wird ausgelöst, wenn ein
Worker-Objekt eine Nachricht erhält, die nicht deserialisiert werden kann.
Beispiel
Der folgende Code-Schnipsel erstellt ein Worker-Objekt unter Verwendung des Worker()-Konstruktors und verwendet dann 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 dediziertes Worker-Beispiel (dedizierten Worker ausführen).
Spezifikationen
| Specification |
|---|
| HTML> # dedicated-workers-and-the-worker-interface> |
Browser-Kompatibilität
Die Unterstützung variiert für verschiedene Arten von Workern. Siehe die Seite des jeweiligen Worker-Typs für spezifische Informationen.
Fehlerverhalten bei Cross-Origin-Workern
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 in Web Workern verfügbar sind
- Andere Arten von Workern:
SharedWorkerund Service Worker. OffscreenCanvas-Interface