HTML页面加载和解析流程
- 用户在地址栏第一次输入网址需要请求html页面,浏览器发送一个html页面的请求,服务器响应请求,并返回一个html页面 ;
- 浏览器开始下载html页面的代码,发现
<head>
标签内有一个<link>
标签引用外部CSS文件。 - 浏览器又发出CSS文件的请求,服务器返回这个CSS文件。
- 浏览器继续载入html中
<body>
部分的代码,并且CSS文件已经拿到手了,可以开始渲染页面了。 - 浏览器在代码中发现一个
<img>
标签引用了一张图片,向服务器发出请求。此时浏览器不会等到图片下载完,而是继续渲染后面的代码。 - 服务器返回图片文件,由于图片占用了一定面积,影响了后面段落的排布,因此浏览器需要回过头来重新渲染这部分代码。
- 浏览器发现了一个包含一行Javascript代码的
<script>
标签,赶快运行它,阻塞了渲染。 - Javascript脚本执行了这条语句,它命令浏览器隐藏掉代码中的某个
<style>(style.display=”none”)。
杯具啊,突然就少了这么一个元素,浏览器不得不重新渲染这部分代码。 - 终于等到了
</html>
的到来,浏览器泪流满面…… - 等等,还没完,用户点了一下界面中的“换肤”按钮,Javascript让浏览器换了一下
<link>
标签的CSS路径。 - 浏览器召集了在座的