Worker: Worker() コンストラクター
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.
Worker()
コンストラクターは、指定された URL で指定されたスクリプトを実行する Worker
オブジェクトを作成します。このスクリプトは 同一オリジンポリシーに従わなければいけません。
メモ: data URL が 同一オリジンであるかどうかについては、ブラウザーベンダーの間で意見が分かれています。 Firefox 10 以降のリリースでは data URL を受け入れますが、すべてのブラウザーでそうなるとは限りません。
構文
new Worker(url)
new Worker(url, options)
引数
url
-
文字列で、ワーカーが実行するスクリプトの URL を表します。同一オリジンポリシーに従っていなければいけません。URL は、現在の HTML ページの場所に対して相対的に解決されます。
メモ: webpack、Vite、Parcel などのバンドラーでは、
import.meta.url
に対する相対 URL をWorker()
コンストラクターに渡すことをお勧めします。例えば、次のようにします。jsconst myWorker = new Worker(new URL("worker.js", import.meta.url));
この方法では、パスは現在の HTML ページではなく現在のスクリプトを基準とするため、バンドラーは、名前の変更などの最適化を安全に行うことができます(そうしないと、
worker.js
URL がバンドラーによって制御されていないファイルを指す可能性があり、何も仮定できなくなるためです)。 options
省略可-
オブジェクトを作成するときに設定できるオプションプロパティを持つオブジェクトです。以下のプロパティが使用できます。
type
-
文字列で、作成するワーカーの種類を指定します。使用できる値は
classic
またはmodule
です。指定しない場合の既定値はclassic
です。 credentials
-
文字列で、ワーカーで使用する資格情報の種類を指定します。使用できる値は
omit
、same-origin
、include
です。省略した場合、または型がclassic
の場合、既定ではsame-origin
(同じオリジンからのリクエストの資格情報のみを含む)が使用されます。 name
-
文字列で、ワーカーのスコープを表す
DedicatedWorkerGlobalScope
を識別する名前を指定します。これは主に、デバッグで役に立ちます。
例外
SecurityError
DOMException
-
文書がワーカーを起動することが許可されていない場合、例えば、 URL が不正な構文であったり、同一オリジンポリシーに違反していたりした場合に発生します。
NetworkError
DOMException
-
ワーカースクリプトの MIME タイプが不正な場合に発生します。これは常に
text/javascript
であるべきです(経緯上、他の JavaScript の MIME タイプも受け入れられる場合があります)。 SyntaxError
DOMException
-
aURL が解釈できなかった場合に発生します。
例
次のコードスニペットは Worker()
コンストラクターを使って Worker
オブジェクトを作成し、続いてそのオブジェクトの使い方を表しています。
const myWorker = new Worker("worker.js");
const first = document.querySelector("input#number1");
first.onchange = () => {
myWorker.postMessage(first.value);
console.log("メッセージがワーカーに送られました");
};
完全な例を見るには、基本的な専用ワーカーの例(専用ワーカーを実行)を参照してください。
仕様書
Specification |
---|
HTML # dom-worker-dev |
ブラウザーの互換性
関連情報
所属する Worker
インターフェイス。