Worker

Workerウェブワーカー API のインターフェイスで、スクリプトで生成することができるバックグラウンドタスクを表し、作成元にメッセージを送り返すことができます。

ワーカーは Worker("path/to/worker/script") コンストラクターを呼び出すことで生成されます。

ワーカーは同じ親ページの同一オリジン内でホストされている限り、他の新しいワーカーを生成することができます(メモ: 入れ子になったワーカーは WebKit では未実装です)。

利用可能なすべてのインターフェイスと関数がすべて Worker の中で利用できるとは限りません。ワーカーはネットワーク通信のために XMLHttpRequest を使うことができますが、 responseXML 属性と channel 属性は常に null になります。(fetch も利用可能であり、このような制限はありません。)

EventTarget Worker

コンストラクター

Worker()

指定された URL にあるスクリプトを実行する専用ウェブワーカーのインスタンスを生成します。また、 Blob URL を用いてワーカーを生成することもできます。

プロパティ

親インターフェイスである EventTarget からプロパティを継承しています。

メソッド

親である EventTarget からメソッドを継承しています。

Worker.postMessage()

ワーカーの内部スコープに、あらゆる JavaScript オブジェクトの形式のメッセージも送ることができます。

Worker.terminate()

ワーカーを直ちに終了させます。ワーカーに終了処理を行わせず、直ちに終了させます。 ServiceWorker のインスタンスはこのメソッドを備えていません。

イベント

error

ワーカー内でエラーが発生したときに発行されます。

message

ワーカーの親が、そのワーカーからメッセージを受信したときに発行されます。

messageerror

Worker オブジェクトが シリアライズ解除できないというメッセージを受け取ったときに発行されます。

rejectionhandled

プロミス (Promise) が拒否されるたびに発行されます。拒否を処理するハンドラーがあるかどうかは問いません。

unhandledrejection

拒否を処理するハンドラーのないプロミス (Promise) が拒否されたときに発行されます。

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

js
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("Message posted to worker");
};

完全な例は、 Basic dedicated worker example (専用ワーカーを実行) を参照してください。

仕様書

Specification
HTML
# dedicated-workers-and-the-worker-interface

ブラウザーの互換性

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
Worker
Worker() constructor
Support for ECMAScript modules
Strict MIME type checks for worker scripts
options.name parameter
options.type parameter
error event
message event
messageerror event
postMessage
options.includeUserActivation parameter
Non-standard
terminate
Available in workers

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
Partial support
Partial support
No support
No support
Non-standard. Check cross-browser support before using.
See implementation notes.
Has more compatibility info.

ワーカーの種類に応じて対応状況が異なります。詳しくは、それぞれの種類のワーカーのページをご覧ください。

オリジンをまたいだワーカーのエラーの動作

古いバージョンのブラウザーでは、オリジンをまたいでワーカーのスクリプトを読み込もうとすると、 SecurityError が発生していました。最近は、 error イベントが発行されるようになりました。

関連情報