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 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.
Der Worker()-Konstruktor erstellt ein Worker-Objekt, das das Skript an der angegebenen URL ausführt. Dieses Skript muss der Same-Origin-Policy entsprechen.
Hinweis: Es gibt eine Meinungsverschiedenheit unter den Browserherstellern darüber, ob eine Daten-URL als same-origin angesehen wird oder nicht. Obwohl Firefox 10 und spätere Versionen Daten-URLs akzeptieren, ist dies nicht bei allen anderen Browsern der Fall.
Syntax
new Worker(url)
new Worker(url, options)
Parameter
url-
Ein String, der die URL des Skripts darstellt, das der Worker ausführen wird. Sie muss der Same-Origin-Policy entsprechen. 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.urlsind, an denWorker()-Konstruktor. Zum Beispiel:jsconst 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, Optimierungen wie das Umbenennen sicher durchzuführen (da andernfalls die
worker.js-URL auf eine Datei verweisen könnte, die nicht vom Bundler kontrolliert wird, sodass er keine Annahmen treffen kann). optionsOptional-
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
classicodermodulesein. Wenn nicht angegeben, wird standardmäßigclassicverwendet. credentials-
Ein String, der den Typ der Anmeldeinformationen angibt, die für den Worker verwendet werden sollen. Der Wert kann
omit,same-originoderincludesein. Wenn nicht angegeben oder wenn der Typclassicist, wird standardmäßigsame-originverwendet (Anmeldeinformationen nur für Same-Origin-Anfragen einbeziehen). name-
Ein String, der einen identifizierenden Namen für den
DedicatedWorkerGlobalScopeangibt, der den Gültigkeitsbereich des Workers darstellt, was hauptsächlich für Debugging-Zwecke nützlich ist.
Ausnahmen
SecurityErrorDOMException-
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.
NetworkErrorDOMException-
Wird ausgelöst, wenn der MIME-Typ des Worker-Skripts falsch ist. Er sollte immer
text/javascriptsein (aus historischen Gründen können andere JavaScript-MIME-Typen akzeptiert werden). SyntaxErrorDOMException-
Wird ausgelöst, wenn aURL nicht analysiert werden kann.
Beispiele
Der folgende Codeausschnitt zeigt die Erstellung eines Worker-Objekts mit dem Worker()-Konstruktor und die anschließende Verwendung des Objekts:
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 einfachen dedizierten Worker-Beispiel (dedizierten Worker ausführen).
Spezifikationen
| Specification |
|---|
| HTML> # dom-worker-dev> |
Browser-Kompatibilität
Loading…
Siehe auch
Das Worker-Interface, zu dem es gehört.