7

私の質問は、クリックイベントなどのdomでイベントハンドラーをバインドするようなことを行うときに、JSエンジンが非同期イベントのパターンをどのように実装するかに関連していますか?

すべてのクリックイベントをリッスンする別のスレッドのようなものがありますか?イベントが発生した場合、バインドリストを参照してイベントをバブルアップしますか?

非同期ネットワーク呼び出しであるAjaxの場合も同様で、ブラウザーはサーバーからのデータのリッスンを開始する新しいスレッドにまたがり、応答を受信すると成功ハンドラーを呼び出しますか?

4

1 に答える 1

7

javascriptイベントキューに関するこの投稿を読んで、それがあなたの質問のほとんどに答えるかどうかを確認してください。実際のOSイベント(マウスイベント、キーボードイベント、タイマーイベント、ネットワークI / Oイベントなど)とのインターフェイスを処理するネイティブOSスレッドがあり、それらはJSキューに送られ、そこでJSエンジンがさらに進むことができます。それらをJavascriptコードにディスパッチします。OSレベルでいくつの個別のスレッドが存在するかは実装固有であり、実装によって異なる可能性があります。

于 2011-11-01T20:18:26.943 に答える