HTML WebワーカーAPI
Webワーカーは、ページのパフォーマンスに影響を与えずにバックグラウンドで実行されるJavaScriptです。
ウェブワーカーとは?
HTMLページでスクリプトを実行すると、スクリプトが完了するまでページが応答しなくなります。
Webワーカーは、ページのパフォーマンスに影響を与えることなく、他のスクリプトから独立してバックグラウンドで実行されるJavaScriptです。Webワーカーがバックグラウンドで実行されている間、クリック、選択など好きなことを続けることができます。
ブラウザのサポート
表の数字は、Webワーカーを完全にサポートする最初のブラウザーバージョンを示しています。
API |
|||||
---|---|---|---|---|---|
Webワーカー | 4.0 | 10.0 | 3.5 | 4.0 | 11.5 |
HTML Webワーカーの例
以下の例では、バックグラウンドで数字をカウントする単純なWebワーカーを作成します。
Webワーカーのサポートを確認する
Webワーカーを作成する前に、ユーザーのブラウザーがWebワーカーをサポートしているかどうかを確認してください。
Webワーカーファイルを作成する
では、外部JavaScriptでWebワーカーを作成しましょう。
ここでは、重要なスクリプトを作成します。スクリプトは「demo_workers.js」ファイルに保存されています。
上記のコードの重要な部分は、HTMLページにメッセージをポストバックするために使用されるpostMessage()
メソッドです。
注:通常、Webワーカーはこのような単純なスクリプトには使用されませんが、CPUを集中的に使用するタスクには使用されます。
Webワーカーオブジェクトを作成する
Webワーカーファイルができたので、HTMLページからそれを呼び出す必要があります。
次の行は、ワーカーが既に存在するかどうかを確認し、存在しない場合は、新しいWebワーカーオブジェクトを作成し、「demo_workers.js」でコードを実行します。
次に、Webワーカーからメッセージを送受信できます。
「onmessage」イベントリスナーをWebワーカーに追加します。
Webワーカーがメッセージを送信すると、イベントリスナー内のコードが実行されます。Webワーカーからのデータはevent.dataに保存されます。
Webワーカーを終了する
Webワーカーオブジェクトが作成されると、終了するまで(外部スクリプトが終了した後でも)メッセージをリッスンし続けます。
Web ワーカーを終了し、ブラウザ/コンピュータのリソースを解放するには、terminate()
メソッドを使用します。
Webワーカーを再利用する
ワーカー変数を未定義に設定すると、終了後にコードを再利用できます。
完全なWebワーカーのサンプルコード
.jsファイルのWorkerコードは既に確認しました。以下は、HTMLページのコードです。
例
WebワーカーとDOM
Webワーカーは外部ファイルにあるため、次のJavaScriptオブジェクトにはアクセスできません。
- ウィンドウオブジェクト
- ドキュメントオブジェクト
- 親オブジェクト
プログラミング学習を加速させる
プログラミングをプロの講師に教えてもらいませんか。