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
はウェブワーカー API のインターフェイスで、スクリプトで生成することができるバックグラウンドタスクを表し、作成元にメッセージを送り返すことができます。
ワーカーは Worker("path/to/worker/script")
コンストラクターを呼び出すことで生成されます。
ワーカーは同じ親ページと同一のオリジン内でホストされている限り、他の新しいワーカーを生成することができます。
すべてのインターフェイスと関数がウェブワーカーで利用できるわけではないことにご注意ください。詳細については、ウェブワーカーで利用可能な関数とクラスを参照してください。
コンストラクター
インスタンスプロパティ
親インターフェイスである EventTarget
からプロパティを継承しています。
インスタンスメソッド
親である EventTarget
からメソッドを継承しています。
Worker.postMessage()
-
ワーカーの内部スコープに、あらゆる JavaScript オブジェクトの形式のメッセージも送ることができます。
Worker.terminate()
-
ワーカーを直ちに終了させます。ワーカーに終了処理を行わせず、直ちに終了させます。
ServiceWorker
のインスタンスはこのメソッドを備えていません。
イベント
error
-
ワーカー内でエラーが発生したときに発行されます。
message
-
ワーカーの親が、そのワーカーからメッセージを受信したときに発行されます。
messageerror
-
Worker
オブジェクトが シリアライズ解除できないというメッセージを受け取ったときに発行されます。
例
次のコード例では、 Worker
オブジェクトを、 Worker()
コンストラクターを用いて生成しています。
const myWorker = new Worker("/worker.js");
const first = document.querySelector("input#number1");
const second = document.querySelector("input#number2");
first.onchange = () => {
myWorker.postMessage([first.value, second.value]);
console.log("メッセージがワーカーへ渡されました");
};
完全な例は、 Basic dedicated worker example (専用ワーカーを実行) を参照してください。
仕様書
Specification |
---|
HTML # dedicated-workers-and-the-worker-interface |
ブラウザーの互換性
ワーカーの種類に応じて対応状況が異なります。詳しくは、それぞれの種類のワーカーのページをご覧ください。
オリジンをまたいだワーカーのエラーの動作
古いバージョンのブラウザーでは、オリジンをまたいでワーカーのスクリプトを読み込もうとすると、 SecurityError
が発生していました。最近は、 error
イベントが発行されるようになりました。
関連情報
- ウェブワーカーの使用
- ウェブワーカーで使用可能な関数一覧
- 他の種類のワーカー:
SharedWorker
、サービスワーカー OffscreenCanvas
インターフェイス