html 第9章 页面加载和解析流程

2022-08-12

①、浏览器加载和渲染 html 的顺序

A. IE下载的顺序是从上到下,渲染的顺序也是从上到下,下载和渲染是同时进行的。

B. 在渲染到页面的某一部分时,其上面的所有部分都已经下载完成(并不是说所有相关联的元素都已经下载完)。

C. 如果遇到语义解释性的标签嵌入文件(JS脚本,CSS样式),那么此时IE的下载过程会启用单独连接进行下载。

D. 样式表在下载完成后,将和以前下载的所有样式表一起进行解析,解析完成后,将对此前所有元素(含以前已经渲染的)重新进行渲染。

E. JS、CSS中如有重定义,后定义函数将覆盖前定义函数。

②、js 的加载

A. 不能并行下载和解析(阻塞下载)。

B. 当引用了 JS 的时候,浏览器发送1个 js request 就会一直等待该 request 的返回。因为浏览器需要1个稳定的 DOM 树结构,而 JS 中很有可能有代码直接改变了 DOM 树结构,比如使用 document.write 或 appendChild,甚至是直接使用的 location.href 进行跳转,浏览器为了防止出现 JS 修改 DOM 树,需要重新构建 DOM 树的情况,所以就会阻塞其他的下载和呈现。

③、html 页面加载和解析流程(举例)

A. 用户输入网址(假设是个 html 页面,并且是第一次访问),浏览器向服务器发出请求,服务器返回html文件。

B. 浏览器开始载入 html 代码,发现标签内有一个标签引用外部 css 文件。

C. 浏览器又发出 css 文件的请求,服务器返回这个 css 文件。

D. 浏览器继续载入 html 中部分的代码,并且 css 文件已经拿到手了,可以开始渲染页面了。

E. 浏览器在代码中发现一个  标签引用了一张图片,向服务器发出请求。此时浏览器不会等到图片下载完,而是继续渲染后面的代码。

F. 服务器返回图片文件,由于图片占用了一定面积,影响了后面段落的排布,因此浏览器需要回过头来重新渲染这部分代码。

G. 浏览器发现了一个包含一行 Javascript 代码的

阅读 178