在探讨浏览器的重绘与回流问题之前,让我们来梳理一下,当浏览器接收的服务器的响应,得到HTML之后,发生了些什么:
- HTML被交给HTML解析器转化为一系列的Token
- 根据Token构建Node,形成DOM Tree
- 遇到CSS标签或者JS脚本标签就会启用新线程请求下载
- CSS样式被CSS解析器解释成内部表示结构
- CSS解析器工作完成后,将样式信息附合到DOM树上,形成Render Tree
- 对Render Tree的各个节点计算布局信息,包括位置、尺寸等等
- 根据Render Tree利用浏览器的UI渲染线程渲染页面