Join MDN and developers like you at Mozilla's View Source conference, 12-14 September in Berlin, Germany. Learn more at https://viewsourceconf.org

Worker

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
WHATWG HTML Living Standard
The definition of 'Worker' in that specification.
Living Standard  Web Workersより変更なし
Web Workers
The definition of 'Worker' in that specification.
勧告候補 初版

ブラウザ実装状況

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

機能 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,