质量属性效用树例子_DOM 树的构建

本文探讨了浏览器如何将HTML解析成DOM树的过程,主要分为两个步骤:Token的拆分和DOM树的构建。首先,HTML文档通过状态机被拆分成Token,接着,这些Token被用来构建DOM树。详细讲解了Token的定义、状态机的工作原理,以及DOM树构建的入栈出栈过程。同时,文中还提及了JS和CSS对DOM解析的影响,以及script标签的async和defer属性的作用。
摘要由CSDN通过智能技术生成

9795c6a3e75baed834f4b85d40bbe384.png

DOM 是 HTML 文档的编程接口。它提供了对文档的结构化的表述,并定义了一种方式可以使从程序中对该结构进行访问,从而改变文档的结构,样式和内容。那么浏览器是如何将 HTML 解析成 DOM 树的呢?我们今天来探索一下。

大体来说,从 HTML 文档到 DOM 树有两大步。第一步:将 HTML 文档解析成一个个 Token。第二步:根据 Token 构建 DOM 树。其具体的流程图如下:

861171f967b0f90c0888a901f8bc6592.png
DOM 树构建流程

首先,浏览器从磁盘或网络读取 HTML 的原始字节,并根据文件的指定编码(例如 UTF-8)将它们转换成各个字符。下一步通过状态机去做分词,将字符串转换成 Token ,每个 Token 都具有特殊含义和一组规则。Token 会被转换成定义了属性等规则的“对象”,同时利用栈构建 DOM 树。下面,我们先来看看 Token 是这么被拆分的。

Token 的拆分

Token 是编译原理里的一个术语,它表示最小的有意义的单元。 我们来看看一个非常标准的标签,会如何被拆分。

<

这里第一个 Token 应该是什么呢?显然,作为一个词(Token),整个 p 标签肯定是过大了,甚至它里面还可以嵌套。那么,只用 p 标签的开头呢?`<p class="a">`也不太合适,因为标签里面可能有属性。这里的第一个 Token 应该是 `<p`,那么我们继续拆分,下一个 Token 就是 `class="a"` 属性,然后是 p 标签的结束 `>`。接着是文本 `text text text`,最后是 p 标签的结束标签 `</p>`。我们把一段标签拆分成了几个 Token 。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值