1. 用户输入网址(假设是个html页面,并且是第一次访问),浏览器向服务器发出请求,服务器返回html文件
2. 浏览器开始载入html代码,发现<head>标签内有一个<link>标签引用外部CSS文件
3. 浏览器又发出CSS文件的请求,服务器返回这个CSS文件
4. 浏览器继续载入html中<body>部分的代码,并且CSS文件已经拿到手了,可以开始渲染页面了
5. 浏览器在代码中发现一个<img>标签引用了一张图片,向服务器发出请求。此时浏览器不会等到图片下载完,而是继续渲染后面的代码
6. 服务器返回图片文件,由于图片占用了一定面积,影响了后面段落的排布,因此浏览器需要回过头来重新渲染这部分代码
7. 浏览器发现了一个包含一行Javascript代码的<script>标签,赶快运行它
8. Javascript脚本执行了这条语句,它命令浏览器隐藏掉代码中的某个<div> (style.display=”none”)。杯具啊,突然就少了这么一个元素,浏览器不得不重新渲染这部分代码
tip:CSS不会阻塞DOM解析,但会阻塞DOM渲染,CSS会阻塞JS执行,并不会阻塞JS文件下载