javascriptを使用してWebサイトを作成する場合、クライアントのコンピューターで複数のスレッドを利用する機会がありますか?
Webプログラミングを使用すると、複数の非同期httpまたはネットワーク要求にアクセスできることを私は知っています。実際のブラウザ内処理について疑問に思っています。
javascriptを使用してWebサイトを作成する場合、クライアントのコンピューターで複数のスレッドを利用する機会がありますか?
Webプログラミングを使用すると、複数の非同期httpまたはネットワーク要求にアクセスできることを私は知っています。実際のブラウザ内処理について疑問に思っています。
ある程度の並行性を提供する「WebWorkers」と呼ばれるものがあります。それらは、Erlangプロセスのようなメッセージパッシングパラダイムを介して「通常の」コードと相互運用します(ただし、それほど洗練されていません)。
これは新しいHTML5であり、もちろん古いブラウザではサポートされていません。
Webワーカーは進むべき道です...これは、クライアント上で複数のスレッド(ワーカー)を実行できるようにするHTML5機能です。この機能は現在、作業中のドラフトです。
ページに対して任意の数のワーカーを開始でき、各ワーカーは自分の状態または結果をメインスレッドに「投稿」できます。
このMDN投稿を覗いてみてくださいhttps://developer.mozilla.org/En/Using_web_workers
また、SRNによって投稿されたリンクも非常に役立ちます(http://www.html5rocks.com/en/tutorials/workers/basics/)
また、ブラウザのサポートはまだ良くないことにも注意してください。http://caniuse.com/webworkers
サポートされていないブラウザにアクセスした場合に備えて、フォールバック方法を使用することをお勧めします。また、Chromeには、Webワーカーが実際にChromeUIをハングアップできるバグがあったことにも注意してください。修正された可能性がありますが、注意してください。
Web Workersはテクノロジーです。
World-Wide Web Consortium (W3C) および Web Hypertext Application Technology Working Group (WHATWG) によって定義されている Web ワーカーは、HTML ページから実行される JavaScript スクリプトであり、バックグラウンドで独立して実行されます。同じ HTML ページから実行された可能性のある他のユーザー インターフェイス スクリプト
MDN の使用法も参照してください。
専用 Web ワーカーは、Web コンテンツがバックグラウンド スレッドでスクリプトを実行するための簡単な手段を提供します。作成されたワーカーは、作成者が指定したイベント ハンドラーにメッセージをポストすることで、スポーン タスクにメッセージを送信できます。
マルチスレッドのWebプログラミングはありますが、マルチスレッドのJavaScriptはありません。
javascriptがクライアントのブラウザで実行されると、行ごとに解釈され、実行中は何もレンダリングされません。
オープンソースライブラリを利用してマルチスレッドを「模倣」することができますが、基本的に各javascriptは、実行するためのページを必要とします。
いくつかのトリックは、長時間実行される関数を渡してiframe内で実行するか、setTimeout関数を使用して、ジョブを追跡するために使用するフラグが次のように実行されたことを示すまで、一度に50ミリ秒の作業を実行することです。isFinished == true
最新バージョンのFlashPlayerではマルチスレッドが可能ですが、単一ドメイン全体での非常に基本的な使用に制限されています。
html 5 Webワーカーは別のオプションですが、すべてのブラウザーで機能するとは限りません。