Worker: Worker()-Konstruktor
Hinweis: Dieses Feature ist verfügbar in Web Workers, außer in Service Workers.
Der Worker()
-Konstruktor erstellt ein Worker
-Objekt, das das Skript an der angegebenen URL ausführt. Dieses Skript muss die Same-Origin-Policy einhalten.
Hinweis: Es gibt Meinungsverschiedenheiten unter Browserherstellern darüber, ob eine Daten-URL denselben Ursprung hat oder nicht. Obwohl Firefox 10 und höher 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. Es muss die Same-Origin-Policy einhalten. 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 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 und nicht zur aktuellen HTML-Seite, was dem Bundler ermöglicht, sicher Optimierungen wie das Umbenennen durchzuführen (da andernfalls die
worker.js
-URL auf eine Datei verweisen könnte, die nicht vom Bundler kontrolliert wird, und es keine Annahmen gemacht werden können). 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 zu erstellenden Workertyp angibt. Der Wert kann
classic
odermodule
sein. Wenn nicht angegeben, wird standardmäßigclassic
verwendet. credentials
-
Ein String, der den Typ der Anmeldeinformationen angibt, die der Worker verwenden soll. Der Wert kann
omit
,same-origin
oderinclude
sein. Wenn nicht angegeben oder wenntype
classic
ist, wird standardmäßigsame-origin
verwendet (nur Anmeldeinformationen für same-origin-Anfragen einfügen). name
-
Ein String, der einen identifizierenden Namen für den
DedicatedWorkerGlobalScope
angibt, der den Geltungsbereich des Workers repräsentiert, was hauptsächlich für Debugging-Zwecke nützlich ist.
Ausnahmen
SecurityError
DOMException
-
Wird ausgelöst, wenn das Dokument keine Genehmigung hat, 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 inkorrekt 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 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");
};
Für ein vollständiges Beispiel siehe unser Einfaches Beispiel eines dedizierten Workers (dedizierten Worker ausführen).
Spezifikationen
Specification |
---|
HTML Standard # dom-worker-dev |
Browser-Kompatibilität
BCD tables only load in the browser
Siehe auch
Das Worker
-Interface, zu dem es gehört.