浏览器的DOM构建算法

1 .在创建解析器的同时,也会创建Document对象。在树构建阶段,以document为根节点的Dom树会不断进行修改,向其中添加各种元素。
2 .标记生成器发送的每个节点都会由树构建器进行处理
3 .规范中定义了每个标记所对应的DOM元素,这些元素会在接收到相应的标记时创建。这些元素不仅会添加到DOM树中,还会添加到开放元素的堆栈中,此堆栈用于纠正嵌套错误和处理未关闭的标记。
4 .inital mode模式-接收html标记后转为before html模式,并在这个模式之下重新处理标记-创建一个HTMLHtmlElement元素,并将这个附加到Document根对象上
5 .状态改为before head模式,接收body标记,及时我们的示例中没有head,也会创建一个HTMLHeadElement,并将其天机到树中去。
6 .此时我们进入 in head模式,然后转为after head模式,系统对body标记进行重新处理,创建并插入HTMLBodyElement,同时模式转为body。
7 .接收body标记结束之后会触发after body模式,现在我们接收到HTML结束标记,然后进入after after body模式。接收到文件结束标记之后,解析过程就此结束
8 .解析结束的操作

1 .在这个阶段,浏览器会将文档标记为可交互状态,然后开始解析那些处于deffer模式的脚本,也就是那些应该在文档解析完成后才执行的脚本,然后文档将状态设置为“完成”,一个“加载”事件将随之触发。
2 .

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容