十.重绘和回流

64 阅读1分钟
  • 浏览器的渲染原理
    • html代码解析成dom树,css代码解析成css规则树
    • dom树和css规则树会组合成渲染树
    • 我们的浏览器就是由渲染树绘制而成的
  • 重绘,代码改变只造成了渲染树的改变,就会发生重新绘制,比如color,background-color
  • 回流,代码直接造成了dom树的改变,也间接导致了渲染树重绘,一般是指尺寸相关
  • 重绘不一定导致回流,但是回流一定会造成重绘
  • 如何减少重绘和回流?
    • 当我们需要给dom树添加一堆dom节点的时候,可以用DocumentFragment
    • 如果你需要修改多个属性,建议都放在一个class里面,改一下class名,可以只需要回流一次
    • 尽量让由动画的元素脱标(脱离文档流),避免对其他元素产生影响
    • 多使用css3新属性,比如transform,这些属性可以让gpu硬盘加速,不会导致回流。