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