Web Workers API のWorkerインターフェースはバックグラウンドで行われるタスクを実行することができ、そのタスクは簡単に生成され、かつ作成元にメッセージを送り返すことができます。Worker()コンストラクタを呼び出しワーカスレッドを走らせるスクリプトを特定してあげるだけでワーカオブジェクトを作成することができます。

ワーカは同じ親ページの同一オリジン内でホストされている限り、他の新しいワーカを発生させる可能性があります。それにくわえて、ワーカはネットワークI/OのためのXMLHttpRequest を使用することもあります。なお、XMLHttpRequestresponseXMLchannel要素は常にnullを返す決まりです。

必ずしもすべてのインターフェースと関数Workerのスクリプトに関連づいているわけではありません。

Firefoxにおいて、ワーカーをエクステンションを用いてjs-ctypesのInデータにアクセスしたい場合、ChromeWorkerオブジェクトを代わりに使用しなくてはいけません。

プロパティ

EventTargetより継承しています。また、AbstractWorkerのメソッドを定義しています。

イベントハンドラ

AbstractWorker.onerror
errorタイプのMessageEventがワーカを通して発生するとき、常にEventListenerを呼びます。これはAbstractWorkerからの継承メソッドです。
Worker.onmessage
messageタイプのMessageEventがワーカを通して発生するときは常にEventListenerを呼びます。例えば、 DedicatedWorkerGlobalScope.postMessageを経由して親要素のドキュメントにメッセージが送信されます。 メッセージはdataプロパティに保存されます。

コンストラクタ

Worker()
特有のURLで動作する専用ワーカのインスタンスを生成することができます。また、Blobsを用いてワーカを生成することもできます。

メソッド

 EventTargetより継承しています。また、AbstractWorkerのメソッドを定義しています。

Worker.postMessage()
ワーカの内部スコープにメッセージを送ることができます。このメッセージは、いかなるJavaScriptのオブジェクトでも送ることができます。
Worker.terminate()
ワーカを直ちに終了させます。実行中の処理は完了を待たずに終了させられます。ServiceWorkerインスタンスはこのメソッドを備えていません。

次のコード例では、Worker()コンストラクタを用いて Worker オブジェクトを生成しています。

var myWorker = new Worker("worker.js");

first.onchange = function() {
  myWorker.postMessage([first.value,second.value]);
  console.log('Message posted to worker');
}

完全なサンプルは次のリンクより御覧ください:Basic dedicated worker examplerun dedicated worker)。

Specifications

Specification Status Comment
HTML Living Standard
Worker の定義
現行の標準  Unknownより変更なし
Unknown
Worker の定義
不明 初版

ブラウザ実装状況

ブラウザごとの実装状況はWorkersの種類によって異なります。それぞれのWorkersのページを御覧ください。

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

機能 Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
基本サポート 4 3.5 10.0 10.6 4
機能 Android Firefox Mobile (Gecko) Firefox OS (Gecko) IE Phone Opera Mobile Safari Mobile Chrome for Android
基本サポート 4.4 3.5 1.0.1 10.0 11.5 5.1 ?

関連情報

ドキュメントのタグと貢献者

このページの貢献者: Kenju
最終更新者: Kenju,