Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

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.

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 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:

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 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