浏览器渲染过程,回流与重绘

71 阅读1分钟

浏览器渲染过程

  1. 解析HTML文档,生成DOM树
  2. 解析CSS,根据CSS规则生成CSSOM规则树
  3. DOM树跟CSSOM规则树生成后,合并DOM树、CSSOM规则树构建渲染树
  4. 渲染树生成后,开始计算元素的大小和位置,在此阶段,发生回流。
  5. 根据计算好的位置信息将内容渲染到屏幕上,在此阶段,发生重绘。

注意

回流: 当DOM变化影响到了元素,比如元素的尺寸、布局、显示隐藏等改变了,需要重新构建,每个页面至少需要一次回流,就是在页面第一次加载的时候,这个时候一定会发生回流。

重绘: 当一个元素的外观发生变化,但是没有改变布局,重新渲染元素的外观。比如background-color、color

  • 如何避免回流与重绘
  • 避免使用table布局
  • 尽可能在DOM树最末端改变class
  • 不要频繁的操作元素的样式
  • 避免设置多层内联样式
  • 开启GPU加速
  • 使用absolute或者fixed,脱离标准文档流

回流必将引起重绘,重绘不一定会引起回流