浏览器渲染过程
- 解析HTML文档,生成DOM树
- 解析CSS,根据CSS规则生成CSSOM规则树
- DOM树跟CSSOM规则树生成后,合并DOM树、CSSOM规则树构建渲染树
- 渲染树生成后,开始计算元素的大小和位置,在此阶段,发生回流。
- 根据计算好的位置信息将内容渲染到屏幕上,在此阶段,发生重绘。
注意
回流: 当DOM变化影响到了元素,比如元素的尺寸、布局、显示隐藏等改变了,需要重新构建,每个页面至少需要一次回流,就是在页面第一次加载的时候,这个时候一定会发生回流。
重绘: 当一个元素的外观发生变化,但是没有改变布局,重新渲染元素的外观。比如background-color、color
- 如何避免回流与重绘
- 避免使用table布局
- 尽可能在DOM树最末端改变class
- 不要频繁的操作元素的样式
- 避免设置多层内联样式
- 开启GPU加速
- 使用absolute或者fixed,脱离标准文档流
回流必将引起重绘,重绘不一定会引起回流