[HTML5と関連API] Web Workersのサンプル

Web Workers と File API を使用して、バイナリデータをダンプするアプリのサンプルを作成してみた。

2011年02月時点で、Firefox3.6にて動作確認

バイナリデータのダンプ部分に関しては、「ASCII.jp:File APIでブラウザーからローカルファイルを操作|古籏一浩のJavaScriptラボ」のソースをほぼそのまま利用させていただきました。

Web Workers

Web Workers とは、JavaScript の処理をバックグラウンドで実行するための仕組みである。

シングルスレッド

JavaScript のプログラムは基本的にはUIと同じプロセスで、且つ、シングルスレッドで実行されるため、JavaScript で何かの処理を実行中はページの表示処理が止まってしまい、ユーザにブラウザが固まっているような感覚を与えてしまうことになる。
これまでは非同期通信の利用や処理の実行タイミングを工夫するなどしてこのようなケースを回避してきたが、HTML5の勧告とともにWebアプリケーションがより高度化・複雑化することが予想され、JavaScript のこのような特性は大きな問題となる可能性がある。

マルチスレッド

そのような中で必要性・重要性が高まってきたのが Web Workers である。
Web Workers とは、バックグラウンドで JavaScript を動作させるための仕組みで、時間の掛かるような処理やUIに関連しない処理をUIとは別のプロセスで実行することを可能とし、上述したような問題を回避するための非常に重要な仕様と言える。
demo のアプリでは、バイナリデータをhtmlで表示可能な形式に変換する処理に比較的時間が掛かるため、その部分に Web Workers を利用している。
よりリッチなWebアプリケーションを実装していくに当たって非常に注目度の高い仕様である。

関連する仕様

関連する仕様として「SharedWorker」や「Persistent Worker」といったものも議論されている?ようである。

トラックバックURL

http://mashimonator.weblike.jp/mt/mt-tb.cgi/159

コメント投稿フォーム