Web Workers APIを使用するための実際のシナリオを探しています。
3 に答える
John Resig (jQuery で有名) は、Web ワーカー(ゲーム、グラフィックス、暗号) を使用した興味深い例を多数紹介しています。
もう 1 つの用途は Web I/O です。つまり、バックグラウンドで URL をポーリングします。そうすれば、ポーリング結果を待っている UI をブロックしません。
もう 1 つの実用的な用途: Bespin では、Web ワーカーを使用して構文の強調表示を行っています。これは、アプリの使用中にコード編集をブロックしたくないためです。
Mozillaから: ワーカーが便利な方法の 1 つは、コードがユーザー インターフェイス スレッドをブロックすることなく、プロセッサを集中的に使用する計算を実行できるようにすることです。
実用的な例として、# の大きなテーブルを持つアプリを考えてみましょう (これは実際の世界です。ところで、2 年前にプログラムしたアプリから取得したものです)。入力フィールドを介してテーブル内の 1 つの # を変更すると、さまざまな列の他の多数の数値がかなり集中的なプロセスで再計算されます。
古いワークフローは次のとおりです。 # を変更します。JavaScriptが他の数値への変更を処理している間、コーヒーを飲みに行き、Webページは3分間応答しません-地獄に最適化して戻った後. コーヒーでお帰りください。2 番目の # を変更します。何度も繰り返します。保存ボタンをクリックします。
ワーカーを使用した新しいワークフローは次のようになります。 # を変更します。何かが再計算されているというステータス メッセージを取得しますが、他の # は変更できます。さらに # を変更します。変更が完了したら、ステータスが「すべての計算が完了しました。最終的な番号を確認して保存できます」に変わるまで待ちます。
私はブラウザからサーバーに大量のデータを送信するためにそれらを使用しました。もちろん、これは通常のAJAX呼び出しで行うことができますが、これがホスト名ごとに貴重な接続の1つを占める場合。また、ユーザーがこのプロセス中にページ遷移を行うと(たとえば、リンクをクリックする)、前のページのJavaScriptオブジェクトが消えて、コールバックを処理できなくなります。Webワーカーが使用されている場合、このアクティビティは帯域外で発生するため、完了することがより確実になります。
別のユースケース:
サーバーから圧縮形式で交換される画像やその他のメディアファイルが多数ある場合は、バックグラウンドでファイルを圧縮/解凍します。