【ハウツー】

"重たいJavaScript処理"もこれで解決! - Google Gearsのワーカプールを試す

2 ワーカプールのテクノロジー

    白石俊平  [2007/06/08]

    ワーカプールのテクノロジー

    まず先に、前提知識として知っておきたいのが「ワーカプールは『スレッド』とは異なる」ということだ。どちらかというと「マルチプロセス」に近い。この違いはつまり、「各ワーカは変数や関数等の状態を共有しない」ということだ。

    生成元のワーカだろうと、他のワーカの変数にアクセスすることはできない

    このことにより、バックグラウンドで動作するワーカはDOMの操作を行うことができない、という制限がある。UIの変更を行えるのは、メインのワーカ(通常のJavaScriptコンテキスト)のみだ。重要なことなので覚えておいてほしい。

    変数などの状態を共有しないのであれば、ワーカ同士はどうやってコミュニケーションするのか? そのために、単純な文字列をメッセージとしてワーカに送信する仕組みが用意されている。

    ワーカ同士のメッセージ通信

    各ワーカはIDを持っており、そのIDを使用して任意のワーカに文字列を送信できる。文字列だけというのは制限がきつすぎるようにも思うが、JavaScriptにはeval関数が存在するのでその心配は無用だ。送信側はJSON形式の文字列を送り、受信側でeval関数を用いてJavaScriptオブジェクトに変換するという可能性を考えると、送信できるオブジェクトには制限がないと言えるだろう。

    次ページではいよいよ、サンプルコードを用いてワーカプールのプログラミングを解説しよう。

    関連したタグ

    新着記事

    特設サイトの情報

      求人情報

      人気記事

      一覧

      イチオシ記事

      新着記事

      特別企画

      転職ノウハウ

      あなたの仕事適性診断

      4つの診断で、自分の適性を見つめなおそう!

      Heroes File ~挑戦者たち~

      働くこと・挑戦し続けることへの思いを綴ったインタビュー

      はじめての転職診断

      あなたにピッタリのアドバイスを読むことができます。

      転職Q&A

      転職に必要な情報が収集できます

      スカウト転職する

      企業からアプローチのメッセージが届きます。

      マイナビニュースマガジン