Worker: Worker() Konstruktor

Baseline Widely available *

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 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.

Der Worker() Konstruktor erstellt ein Worker-Objekt, das das Skript an der angegebenen URL ausführt. Dieses Skript muss der Same-Origin-Policy folgen.

Hinweis: Es gibt Meinungsverschiedenheiten unter Browserherstellern darüber, ob eine Daten-URL als selben Ursprungs gilt oder nicht. Obwohl Firefox 10 und später Daten-URLs akzeptieren, ist dies bei allen anderen Browsern nicht der Fall.

Syntax

js
new Worker(url)
new Worker(url, options)

Parameter

url

Ein String, der die URL des Skripts darstellt, das der Worker ausführen wird. Es muss der Same-Origin-Policy folgen. Die URL wird relativ zum aktuellen Speicherort der HTML-Seite aufgelöst.

Hinweis: Bundler, einschließlich webpack, Vite und Parcel, empfehlen, URLs zu übergeben, die relativ zu import.meta.url sind, an den Worker()-Konstruktor. Zum Beispiel:

js
const myWorker = new Worker(new URL("worker.js", import.meta.url));

Auf diese Weise ist der Pfad relativ zum aktuellen Skript statt zur aktuellen HTML-Seite, was es dem Bundler ermöglicht, sicher Optimierungen wie Umbenennungen vorzunehmen (weil sonst die worker.js-URL auf eine Datei verweisen könnte, die nicht vom Bundler kontrolliert wird, sodass er keine Annahmen treffen kann).

options Optional

Ein Objekt, das Options-Eigenschaften enthält, die beim Erstellen der Objektinstanz festgelegt werden können. Verfügbare Eigenschaften sind wie folgt:

type

Ein String, der den Typ des zu erstellenden Workers angibt. Der Wert kann classic oder module sein. Wenn nicht angegeben, wird standardmäßig classic verwendet.

credentials

Ein String, der die Art der Anmeldeinformationen festlegt, die für den Worker verwendet werden sollen. Der Wert kann omit, same-origin oder include sein. Wenn nicht angegeben oder wenn der Typ classic ist, wird standardmäßig same-origin verwendet (nur Anmeldeinformationen für Same-Origin-Anfragen einbeziehen).

name

Ein String, der einen identifizierenden Namen für den DedicatedWorkerGlobalScope angibt, der den Bereich des Workers repräsentiert und hauptsächlich für Debugging-Zwecke nützlich ist.

Ausnahmen

SecurityError DOMException

Wird ausgelöst, wenn das Dokument nicht berechtigt ist, Worker zu starten, z. B. wenn die URL eine ungültige Syntax hat oder die Same-Origin-Policy verletzt wird.

NetworkError DOMException

Wird ausgelöst, wenn der MIME-Typ des Worker-Skripts falsch ist. Es sollte immer text/javascript sein (aus historischen Gründen können andere JavaScript MIME-Typen akzeptiert werden).

SyntaxError DOMException

Wird ausgelöst, wenn aURL nicht geparst werden kann.

Beispiele

Der folgende Codeausschnitt zeigt die Erstellung eines Worker-Objekts mit dem Worker()-Konstruktor und die anschließende Nutzung des Objekts:

js
const myWorker = new Worker("worker.js");
const first = document.querySelector("input#number1");

first.onchange = () => {
  myWorker.postMessage(first.value);
  console.log("Message posted to worker");
};

Ein vollständiges Beispiel finden Sie in unserem Basis-Beispiel für dedizierte Worker (dedizierter Worker ausführen).

Spezifikationen

Specification
HTML
# dom-worker-dev

Browser-Kompatibilität

Siehe auch

Das Worker-Interface, zu dem es gehört.