Web Worker

From Wikipedia, the free encyclopedia

Web Worker(ウェブ・ワーカー)は、HTMLページから実行され、同じHTMLページから実行される可能性があるスクリプトからは独立にバックグラウンドで動作する[1]JavaScriptスクリプトである。World Wide Web Consortium(W3C)とWeb Hypertext Application Technology Working Group(WHATWG)で仕様が定義されている。web workerはマルチコアCPUをより効率よく利用できることが多い[2]

Web Workerは、全てのタスクがシングルスレッドで処理されるJavaScriptの持つ問題を解消するための仕様である。JavaScriptで長時間かかる処理を実行すると、入力や画面の描画処理がブロックされて、アプリケーションが操作不能となってしまうため、処理を分割して何度もsetTimeout等で呼び出すなどの工夫が必要であった。しかし、workerを使用することによって、一部の操作について並行処理(バックグラウンド処理)が可能となる[3]

W3CとWHATWGは、Web Workerをクリックやユーザー操作などに応答するスクリプトによって中断されない長時間実行するスクリプトとして想定している。workerがユーザーアクティビティで中断されないようにすることで、バックグラウンドで長いタスクを実行すると同時に、Webページの応答性を確保できるようになる。

Web Workerの仕様はHTML Living Standardの一部である[4]

ワーカー内ではDOM操作などUI操作はできないが、タイマーや非同期通信等の機能は使用できる。また、この機能の仕様は、HTMLの中に含まれている。

出典

外部リンク

Related Articles

Wikiwand AI