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.

EventTarget Worker

Konstruktoren

Worker()

Erstellt einen dedizierten Web Worker, der das Skript an der angegebenen URL ausführt. Dies funktioniert auch für Blob-URLs.

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:

js
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