[web]ブラウザ動作プロシージャ
ブラウザコンポーネント
ブラウザを構成する要素は次のとおりです.
UI ブラウザエンジン レンダリングエンジン ネットワーク層 UIバックエンド リポジトリ 1. UI
UIは、ユーザが要求したページ以外のすべてのUIである.
Webブラウザ.
2.ブラウザエンジン
UIとレンダリングエンジンの間の仲裁役.
ユーザーがUIと対話するにつれて、ブラウザエンジンはコマンドを理解し、実行します.
3.レンダリングエンジン
レンダリングエンジンは、HTML、CSS、JSをグループ化してページを描画します.
ブラウザによってエンジンが異なります.
Chrome、Opera、EdgeはWebkit、Blink/FirfoxはGecko/ExplorerはTrudent/Safariを使用します.
4.ネットワーク層
HTTP、HTTPSなどの外部リソースをプロトコルとしてサーバに要求を送信する.
5.JSインタフェース
JSの役割を説明して実行します.
6.UIバックエンド
オペレーティングシステムインタフェースを実行するUIを処理します.
7.リポジトリ
ブラウザにデータをローカルに格納するためのレイヤ
Cookie、ローカルストレージ、セッションストレージ、IndexedDB、およびWeb SQLへのアクセスおよびストレージに使用します.
レンダリングエンジンのモーションパス
Webページに接続すると、ネットワークで接続されたWebページのHTMLドキュメントをインポートできます.
レンダリングエンジンは、上記の手順に従ってHTMLドキュメントを解析します.
プロセスは大きく4つに分けることができます.ボクシング レンダリングツリー構築 レイアウトor をリフレッシュペンキ このプロシージャを重要なレンダーパスと呼びます.
1.ボクシング
構造化タグコードのプロセス
これは、コードが最小の単位、例えば
['<','d','i','v','>','H','e','l','l','o','<','/','d','i','v'>]
このように表すことができます.
割り当てプロセスは、入力された文字列で指定された構文に基づいて作成されます.
パサーはいつも2つのことをします.
語彙アナライザ
資料を有効なコインに分解する.
解読する
言語構文規則に基づいてドキュメント構造を解析し,フラクタルツリーを生成する.
ドキュメント→語彙解析→構文解析→分類ツリー
順番に動く.
解析器は語彙解析器から新しいタグを取得し、構文規則が一致しているかどうかを確認します.
ルールが満たされている場合、タグのノードがパーティションツリーに追加され、解析器はタグの追加を要求します.
2.変換
解析器は最終結果ではありません.
ソースコードをマシンコードに変換するコンパイラは、フラクタルツリーを生成し、マシンコードドキュメントに変換します.
ドキュメント→語彙解析→構文解析→分類ツリー→フォーマットコピー→マシンコード
語彙はハングル、英語などの単語を指し、文法規則は語彙間に適用される規則を指す.
よくある文法エラーは文法規則に違反していることです.
ブラウザはHTML、CSS、JSを解析できます.
JSは、エンジンレイヤをレンダリングするのではなく、JS解析器と呼ばれる個別のレイヤです.
レンダーエンジンモーションパス(Render Engine Motion Passes)
レンダリングエンジンは、サーバの応答を取得するHTMLドキュメントから開始します.
レンダリングエンジンは、js以外のHTML、CSSをグループ化します.
1)HTML文書をスライスしてDOMツリーを構築する
2)CSSファイルとスタイル要素の分割
3)DOMツリーと2の成果物を組み合わせてレンダリングツリーを構築する
4)レンダリングツリー内の各ノードの画面上の配置位置を決定する
5)UIバックエンドでレンダーツリーのノードを描画する
1.Domツリーの構築
上部に対応するdomツリー.
2.CSSOMを作成します.
CSSルールを含むCSSファイルをスタイルシートオブジェクトに分割します.CSSルールオブジェクトには、選択されたオブジェクト、宣言されたオブジェクト、およびCSS構文に一致する他のオブジェクトが含まれます.
3.ランダーツリー(DOM+CSSOM)
DOMツリーを構築するとき、ブラウザはDOMツリーに基づいてレンダリングツリーを生成します.[レンダリングツリー](Render Tree)の機能は、ドキュメントをビジュアルコンポーネントにすることです.
このコンポーネントはレンダラー、レンダーオブジェクトと呼ばれ、レンダラーは自分とそのサブエレメントの配置と描画方法を知っています.
レンダラーはDOM要素に一致しますが、1:1ではありません.なぜなら、
4.レンダーツリーを配置します.
[レンダリングツリー](Render Tree)は、位置とサイズがないため、各オブジェクトの位置とサイズを決定します.
5.レンダリングツリーを描画します.
レンダーツリーを作成してレイアウトを設定すると、UIバックエンドはレンダーツリーのオブジェクトをpx値として表します.
JavaScriptの処理方法
JavaScriptはJavaScriptエンジンで処理されます.
制御権限を取得したjavascriptエンジンは、
JSの実行が完了したら、HTMLファイルを再制御し、DOMの作成を続行します.
ブラウザはHTML、CSS、JSを同期して処理します.JSコードが完了していないDOMを操作すると、JavaScriptエンジンに制御権限がある場合にエラーが発生します.
HTMLファイルでは、JSファイルがbodyタグの下部にある理由です.
分割:HTMLタグを使用してツリーを作成します(レンダリング?)
ノード:ドキュメントノード、要素ノード、ツリーを構成する要素
ブラウザを構成する要素は次のとおりです.
UIは、ユーザが要求したページ以外のすべてのUIである.
Webブラウザ.
2.ブラウザエンジン
UIとレンダリングエンジンの間の仲裁役.
ユーザーがUIと対話するにつれて、ブラウザエンジンはコマンドを理解し、実行します.
3.レンダリングエンジン
レンダリングエンジンは、HTML、CSS、JSをグループ化してページを描画します.
ブラウザによってエンジンが異なります.
Chrome、Opera、EdgeはWebkit、Blink/FirfoxはGecko/ExplorerはTrudent/Safariを使用します.
4.ネットワーク層
HTTP、HTTPSなどの外部リソースをプロトコルとしてサーバに要求を送信する.
5.JSインタフェース
JSの役割を説明して実行します.
6.UIバックエンド
オペレーティングシステムインタフェースを実行するUIを処理します.
Alert
またはSelect
のオペレーティングシステムでの動作は異なる場合があります.7.リポジトリ
ブラウザにデータをローカルに格納するためのレイヤ
Cookie、ローカルストレージ、セッションストレージ、IndexedDB、およびWeb SQLへのアクセスおよびストレージに使用します.
レンダリングエンジンのモーションパス
Webページに接続すると、ネットワークで接続されたWebページのHTMLドキュメントをインポートできます.
レンダリングエンジンは、上記の手順に従ってHTMLドキュメントを解析します.
プロセスは大きく4つに分けることができます.
1.ボクシング
構造化タグコードのプロセス
これは、コードが最小の単位、例えば
<div>Hello</div>
で分割されることを意味する.['<','d','i','v','>','H','e','l','l','o','<','/','d','i','v'>]
このように表すことができます.
割り当てプロセスは、入力された文字列で指定された構文に基づいて作成されます.
パサーはいつも2つのことをします.
語彙アナライザ
資料を有効なコインに分解する.
解読する
言語構文規則に基づいてドキュメント構造を解析し,フラクタルツリーを生成する.
順番に動く.
解析器は語彙解析器から新しいタグを取得し、構文規則が一致しているかどうかを確認します.
ルールが満たされている場合、タグのノードがパーティションツリーに追加され、解析器はタグの追加を要求します.
2.変換
解析器は最終結果ではありません.
ソースコードをマシンコードに変換するコンパイラは、フラクタルツリーを生成し、マシンコードドキュメントに変換します.
ドキュメント→語彙解析→構文解析→分類ツリー→フォーマットコピー→マシンコード
語彙はハングル、英語などの単語を指し、文法規則は語彙間に適用される規則を指す.
よくある文法エラーは文法規則に違反していることです.
ブラウザはHTML、CSS、JSを解析できます.
JSは、エンジンレイヤをレンダリングするのではなく、JS解析器と呼ばれる個別のレイヤです.
レンダーエンジンモーションパス(Render Engine Motion Passes)
レンダリングエンジンは、サーバの応答を取得するHTMLドキュメントから開始します.
レンダリングエンジンは、js以外のHTML、CSSをグループ化します.
1)HTML文書をスライスしてDOMツリーを構築する
2)CSSファイルとスタイル要素の分割
3)DOMツリーと2の成果物を組み合わせてレンダリングツリーを構築する
4)レンダリングツリー内の各ノードの画面上の配置位置を決定する
5)UIバックエンドでレンダーツリーのノードを描画する
1.Domツリーの構築
<html>
<body>
<p>Hello World</p>
<div><img src="example.png" /></div>
</body>
</html>
上部に対応するdomツリー.
2.CSSOMを作成します.
CSSルールを含むCSSファイルをスタイルシートオブジェクトに分割します.CSSルールオブジェクトには、選択されたオブジェクト、宣言されたオブジェクト、およびCSS構文に一致する他のオブジェクトが含まれます.
3.ランダーツリー(DOM+CSSOM)
DOMツリーを構築するとき、ブラウザはDOMツリーに基づいてレンダリングツリーを生成します.[レンダリングツリー](Render Tree)の機能は、ドキュメントをビジュアルコンポーネントにすることです.
このコンポーネントはレンダラー、レンダーオブジェクトと呼ばれ、レンダラーは自分とそのサブエレメントの配置と描画方法を知っています.
レンダラーはDOM要素に一致しますが、1:1ではありません.なぜなら、
<HEAD>
やdisplay:noneなどのユーザが見えないDOM要素は、レンダリングツリーに追加されないからです.(非表示のプロパティがツリーに表示されます.)4.レンダーツリーを配置します.
[レンダリングツリー](Render Tree)は、位置とサイズがないため、各オブジェクトの位置とサイズを決定します.
5.レンダリングツリーを描画します.
レンダーツリーを作成してレイアウトを設定すると、UIバックエンドはレンダーツリーのオブジェクトをpx値として表します.
JavaScriptの処理方法
JavaScriptはJavaScriptエンジンで処理されます.
<script>
タグに遭遇すると、HTML解析器はDOMの作成を停止し、JavaScriptエンジンに権限を渡します.制御権限を取得したjavascriptエンジンは、
<script>
タグのJSコードまたはsrc属性で定義されたJSファイルをロードおよび配布することによって実行されます.JSの実行が完了したら、HTMLファイルを再制御し、DOMの作成を続行します.
ブラウザはHTML、CSS、JSを同期して処理します.JSコードが完了していないDOMを操作すると、JavaScriptエンジンに制御権限がある場合にエラーが発生します.
HTMLファイルでは、JSファイルがbodyタグの下部にある理由です.
分割:HTMLタグを使用してツリーを作成します(レンダリング?)
ノード:ドキュメントノード、要素ノード、ツリーを構成する要素
Reference
この問題について([web]ブラウザ動作プロシージャ), 我々は、より多くの情報をここで見つけました https://velog.io/@jhjeong00/web브라우저-동작-과정テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol