[インターネット]ブラウザの動作原理(2)-パーティション化とDOMツリーの構築
1.グループ化一般
1.ボクシングとは?
2.解析器-語彙解析器の組み合わせ
翻訳は語彙分析と文法分析に分けられる.
1.語彙分析と文法分析
2.パーサーの仕事
構文規則に一致するように、語彙解析器から新しいタグが受信されました.
1.ルールに準拠している場合:ルールに準拠している場合は、タグのノードがパーティションツリーに追加され、解析器が別のタグを要求します.
2.ルールが満たされていない場合:解析器はタグを内部に保存し、タグに一致するルールが発見されるまで要求処理とします.適切なルールがない場合は例外処理とします.これは、ドキュメントが無効で構文エラーが含まれていることを意味します.
へんかん
フラクタル・ツリーは最終的な成果物ではなく、後でより多くの変換プロセスが必要です.
例:コンパイル・プロシージャ-ソース・コードをマシン・コードに変換するコンパイラは、フラクタル・ツリーの作成後にマシン・コード・ドキュメントに変換します.
3.ネギの種類
ここでは,下向き解析器と上向き解析器についてより詳細に議論することはない.読みたい方は出典の記事を参考にしてください.
2.HTML解析器
HTML解析器とは?
したがって,HTMLはグループ化が難しく,従来の構文解析ができないため,コンテキストフリー構文ではない.XML解析器もパーティション
2. DOM(Document Object Model)
例
<html>
<body>
<p>Hello World</p>
<div><img src="example.png" /></div>
</body>
</html>
これらのコードは、次のDOMツリーに変換できます.3.グループ化アルゴリズム
1.上下に掘ってはいけない
HTMLは通常のトップダウンまたはアッププロセッサに分けられません
2.HTML解析器
1.トークン化:語彙分析として、入力値をトークンに分ける
タグを識別してツリージェネレータに渡し、入力が終了するまで次の文字を確認して、追加のタグを確認します.
(HTMLでは、開始タグ、終了タグ、属性名、属性値としてマークされています)
タグアルゴリズムタグアルゴリズム:ステートマシン
-各ステータスに1つまたは複数の連続する文字が入力され、その文字に基づいて次のステータスが更新されますが、結果は現在のタグステータスとツリー構築ステータスの影響を受けます.これは、同じ文字を取得しても、現在の状態に応じて異なる次の状態結果が生成されることを意味します.
-例
<html>
<body>
Hello world
</body>
</html>
初期状態「生産資源ステータス」<文字に遭遇した場合、ステータスが「ラベルオープン状態」になります.
aからzまでの文字に遭遇すると、「タグタグタグタグの開始」(生成されたタグ=htmlタグ)が作成され、ステータスが「タグ名ステータス」(遭遇>文字まで)に変更されます.
>到着文字、現在のタグが発行され、ステータスが「リソースステータス」
/文字生成終了タグタグタグタグタグタグタグタグタグタグ
2.ツリー構築アルゴリズム
例
<html>
<body>
Hello world
</body>
</html>
入力値タグフェーズで作成された一連のタグ.「html」タグ:「html前」モード、タグこのモードで処理し、HTML HtmlElement要素を生成して文書オブジェクトの上部に追加し、ステータスを「head前」モードに変更
bodyタグ:「head」タグがなくてもHTML HeadElementは暗黙的に作成されてツリーに追加され、bodyタグは処理され、HTML BodyElementは作成されてツリーに追加され、ステータスは「body inner」モード
「Hellow world」文字列の文字タグ:最初のタグを作成し、「本文」ノードを追加し、他の文字をノードに追加します.
html終了フラグ:「body後」モード
前のファイルタグ:パーティションを終了
3.ドリブル終了後の動作
1. ブラウザはどのように動作しますか?
Reference
この問題について([インターネット]ブラウザの動作原理(2)-パーティション化とDOMツリーの構築), 我々は、より多くの情報をここで見つけました https://velog.io/@0_sujeong/인터넷브라우저의-작동-원리2-파싱과-DOM-트리-구축テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol