ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## HTML解析,构建DOM 整个渲染步骤中,HTML解析是第一步。 简单的理解,这一步的流程是这样的:**浏览器解析HTML,构建DOM树。** 但实际上,在分析整体构建时,却不能一笔带过,得稍微展开。 解析HTML到构建出DOM当然过程可以简述如下: ``` Bytes → characters → tokens → nodes → DOM ``` 譬如假设有这样一个HTML页面:(以下部分的内容出自参考来源,修改了下格式) ``` <html> <head> <meta name="viewport" content="width=device-width,initial-scale=1"> <link href="style.css" rel="stylesheet"> <title>Critical Path</title> </head> <body> <p>Hello <span>web performance</span> students!</p> <div><img src="awesome-photo.jpg"></div> </body> </html> ``` 浏览器的处理如下: :-: ![img](http://xiaoyulive.oss-cn-beijing.aliyuncs.com/date/2018-03-26/browser_parse_html.png) 列举其中的一些重点过程: ``` 1. Conversion转换:浏览器将获得的HTML内容(Bytes)基于他的编码转换为单个字符 2. Tokenizing分词:浏览器按照HTML规范标准将这些字符转换为不同的标记token。每个token都有自己独特的含义以及规则集 3. Lexing词法分析:分词的结果是得到一堆的token,此时把他们转换为对象,这些对象分别定义他们的属性和规则 4. DOM构建:因为HTML标记定义的就是不同标签之间的关系,这个关系就像是一个树形结构一样 例如:body对象的父节点就是HTML对象,然后段略p对象的父节点就是body对象 ``` 最后的DOM树如下: :-: ![img](http://xiaoyulive.oss-cn-beijing.aliyuncs.com/date/2018-03-26/browser_parse_dom.png)