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.

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
# dedicated-workers-and-the-worker-interface

Browser-Kompatibilität

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
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
Non-standard
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