1. ほとんどのブラウザのコンポーネントは図に示すとおりです。
下部の 3 つのコンポーネントは、ネットワーク、UI バックエンド、JS インタープリターです。機能は次のとおりです:
(1) ネットワーク - http リクエストなどのネットワーク呼び出しを完了するために使用され、プラットフォームに依存しないインターフェイスがあり、さまざまなプラットフォームで動作できます
(2) UI バックエンド - 描画に使用されます。同様の組み合わせの選択 ボックスやダイアログ ボックスなどの基本コンポーネントには、特定のプラットフォームに固有ではない共通のインターフェイスがあります。 最下層はオペレーティング システムのユーザー インターフェイスを使用します
(3) JS インタープリター - JS を解釈して実行するために使用されます。コード
ps: 上記の写真と知識ポイントは主に「ブラウザの仕組み: 現代のウェブ ブラウザの舞台裏」から抜粋したもので、詳細を知りたい学生はそこに集中してください。
2. ほとんどのブラウザ (Chrome など) は、単一のスレッドを使用して JavaScript を実行し、ユーザー インターフェイスを更新します。このスレッドは「ブラウザ UI スレッド」と呼ばれることが多く、一度にこれらの操作の 1 つしか実行できません。つまり、JavaScript コードの実行中はユーザー インターフェイスが入力に応答できず、その逆も同様です。これが行われるのは、JavaScript コードの機能が DOM の操作とユーザー インターフェイスの更新であるためです。これら 2 つのことを行うには同じスレッドを使用する方が効率的です
3. ブラウザー UI スレッドの作業に基づいています。シンプルなキュー システムでは、タスクはプロセスがアイドル状態になるまでキューに保存されます。解放されると、キュー内の次のタスクが再抽出されて実行されます。これらのタスクは、JavaScript コードを実行するか、再描画やリフローなどの UI 更新を実行します。
4. JavaScript は単一スレッドで実行されることを強調することが重要です。setTimeout() や setInterVal() などの関数に混同され、マルチスレッドであると誤解しないでください。
基本的なポイントは説明しました。本題に入り、ブラウザでの JavaScript の実行プロセスを説明しましょう。
1. 原則
一般的に、