页面渲染过程
当用户访问一个网站时,浏览器解释HTML和CSS并将其呈现在屏幕上,了解这个过程会对优化网页有所帮助,具体来说,这个过程的步骤是:
1.解析HTML以创建文档对象模型(DOM)
当HTML从web服务器下载时,浏览器将解析它以构建DOM, DOM是HTML文档结构的层次结构表示。
2.解析CSS以创建CSS对象模型(CSSOM)
在构建DOM之后,浏览器解析CSS并创建CSSOM。这与DOM类似,不同之处在于它表示CSS规则应用于文档的方式。
3. 回流
DOM和CSSOM树被组合起来创建一个渲染树。然后,渲染树执行布局过程,应用CSS规则并在页面上布局元素以创建UI。
**4. 重绘
在文档完成布局过程之后,CSS和页面中的媒体将应用于页面的装饰方面。在绘制过程的最后,输出被转换为像素(光栅化)并显示在屏幕上。
站点的大部分渲染是在页面首次加载时完成的,但在此之后可能会出现更多渲染。当用户与页面上的元素交互时,页面可能会发生更改。这些更改可能触发回流、重绘。
关于阻塞
- DOM解析和CSS解析是并行的,所以CSS加载不会阻塞DOM解析
- DOM树和CSSOM树需要结合生成渲染树之后才能开始渲染,所以CSS加载会阻塞DOM渲染
- CSS和js可以并行加载,但是按顺序的CSS解析会阻塞js执行
- js可以操作DOM和样式,所以js会阻塞DOM渲染