SharedWorker()
SharedWorker()
コンストラクターは、指定された URL でスクリプトを実行する SharedWorker
オブジェクトを作成します。このスクリプトは同一オリジンポリシーに従わなければなりません。
メモ: ブラウザーメーカー間で、 data URL が同じ元であるかどうかについての見解の相違があります。 Firefox 10.0 以降では data URL を受け入れることができますが、他のすべてのブラウザーではその限りではありません。
構文
new SharedWorker(aURL)
new SharedWorker(aURL, name)
new SharedWorker(aURL, options)
引数
aURL
-
文字列で、ワーカーが実行するスクリプトの URL を表します。これは同一オリジンポリシーに従わなければなりません。
name
省略可-
ワーカーのスコープを表す
SharedWorkerGlobalScope
の識別名を指定する文字列で、主にデバッグのために使用されます。 options
省略可-
オブジェクトのインスタンスを作成する際に設定することができる、オプションプロパティを格納したオブジェクト。利用できるプロパティは以下のとおりです。
type
-
作成するワーカーの種類を指定する文字列です。この値には
classic
またはmodule
を指定することができます。指定しない場合、既定ではclassic
が使用されます。 credentials
-
ワーカーに使用する資格情報の種類を指定する文字列です。値は
omit
、same-origin
、include
のいずれかです。指定しなかった場合、または type がclassic
の場合、既定ではomit
(資格情報は必要なし) が使用されます。 name
-
ワーカーのスコープを表す
SharedWorkerGlobalScope
の識別名を指定する文字列で、主にデバッグのために使用されます。
例外
SecurityError
DOMException
-
ドキュメントがワーカーの開始を許可されていない場合、例えば URL が無効な構文であったり、同一オリジンポリシーに違反していたりする場合に発生します。
NetworkError
DOMException
-
ワーカースクリプトの MIME 型が正しくない場合に発生します。常に
text/javascript
であるべきです(歴史的な理由から他の JavaScript MIME タイプも受け入れられるかもしれません)。 SyntaxError
DOMException
-
aURL
が解釈できない場合に発生します。
例
以下のコードでは、SharedWorker()
コンストラクターを使用して SharedWorker
オブジェクトを作成し、その後にそのオブジェクトを使用している様子を示しています。
const myWorker = new SharedWorker("worker.js");
myWorker.port.start();
first.onchange = () => {
myWorker.port.postMessage([first.value, second.value]);
console.log("Message posted to worker");
};
second.onchange = () => {
myWorker.port.postMessage([first.value, second.value]);
console.log("Message posted to worker");
};
myWorker.port.onmessage = (e) => {
result1.textContent = e.data;
console.log("Message received from worker");
};
完全な例は、基本的な共有ワーカーの例(共有ワーカーを実行)を参照してください。
仕様書
Specification |
---|
HTML Standard # dom-sharedworker-dev |
ブラウザーの互換性
BCD tables only load in the browser
関連情報
- 所属先の
SharedWorker
インターフェイス。