Javascript がマルチスレッド化されていない場合、AJAX リクエストはどのように非同期化されますか?
実装はブラウザ固有ですか?
Javascript がマルチスレッド化されていない場合、AJAX リクエストはどのように非同期化されますか?
実装はブラウザ固有ですか?
ブラウザの実行モデルは、「イベント ループ」の概念に基づいています。イベントを処理するスレッドは 1 つだけです (少し単純化しすぎています)。イベントが発生すると、ハンドラが順番に呼び出されます。
Ajax は、特定のイベントを発生させる単なるメカニズムです。HTTP リクエストのセットアップは同期的ですが、セットアップするだけです。ブラウザーは、サーバーからの戻りデータを表すネットワーク通信に応答し、それが発生したときにイベントをトリガーします。
最新のブラウザーは、各ウィンドウが独自のプロセス (または一般的に言えば、その他のシステム レベルの「スレッド」構造) を持つ場合があるという点で、やや複雑です。また、新しい「web worker」機能により、個別のスレッドのようなコンパートメントを同時に実行できます。