パーティションとDOMツリーの構築
5155 ワード
⁉⁉⁉⁉⁉⁉⁉⁉⁉?????\82
通常のparsing
ドキュメントの分割は、ブラウザがコードを理解可能で使用可能な構造に変換することを意味します.割り当て結果は、通常、ドキュメント構造を表すノードツリーであり、割り当てツリー(parse tree)または構文ツリー(syntax tree)と呼ばれます.
예) 2+3-1과 같은 표현식은 다음과 같은 트리가 된다!
構文
解析→語彙解析の組合せ
構文解析は言語の構文規則を適用するプロセスである.
パシーの2つの行為
割り当てプロセスは繰り返し、解析器は通常、構文規則と一致するかどうかを確認するために語彙解析器から新しいタグを取得します.ルールに合致する場合、タグのノードがパーティションツリーに追加され、解析器は別のタグを要求します.
ルールに合致しない場合、解析器はトークンに一致するルールが発見されるまでトークンを内部に保存するように要求します.正しいルールがない場合は例外として処理します.これは、ドキュメントが不要であり、構文エラーが含まれていることを意味します.
へんかん
法書の種類
詳細については、出典を参照してください.
デジタルHTML解析器
したがって,HTMLはグループ化が難しく,従来の構文解析ができないため,コンテキストフリー構文ではない.XML解析器も容易に配布できません.
⭐DOM
<html>
<body>
<p>Hello World</p>
<div><img src="example.png" /></div>
</body>
</html>
次のDOMツリーに変換できます.グループ化アルゴリズム
HTMLの場合、一般的な上向き/下向き解析器ではグループ化できません.
1.言語の寛容性
2.ブラウザによるHTMLエラーへの寛容
3.変更に従って再グループ化します(通常、ソースはグループ化中は変更されませんが、HTMLにdocument.writeが含まれているスクリプトタグはタグを追加することができますので、実際には入力中にグループを変更します).
以上の3つの理由から、HTMLパケットに個別の解析器を作成します。
2.レンダリングエンジンはcss/styleデータをグループ化し、そのスタイルデータでレンダリングツリーを作成します.
3.レンダーツリーレイアウトの作成
各ノードに、画面のどの空間に値を割り当てるかを指定します.
4.レンダーツリーのカラーリング
レンダーツリーが作成され、レイアウトが構成されている場合、UIバックエンドは、指定したスタイルと位置の値に従って各ノードを画面上に配置する操作を行います.
ブラウザがドキュメントをDOM構造に分割して画面に表示するブラウザの動作原理を簡単に理解しました.
基本中の基本なので、もっと詳しく理解して身につけるので、引き続き見るべきです.😂(難しい)
ソース(詳細はこちら)
https://flash-ctf.tistory.com/36
https://d2.naver.com/helloworld/59361
https://woong-jae.com/web/210821-how-does-browser-work
Reference
この問題について(パーティションとDOMツリーの構築), 我々は、より多くの情報をここで見つけました https://velog.io/@ybj1227/파싱과-DOM트리-구축テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol