重绘
改变了元素的外观,比如:改变了元素的颜色,但不会影响页面的布局,把改变后变化重新绘制在屏幕上,这个过程叫重绘
回流(重排)
改变了渲染树的节点,影响了该节点的几何属性,导致节点位置发生了变化,这个时候浏览器就要重新构建渲染树,这个过程就是回流(重排)比如:g给某个p标签添加了display为none的样式,p标签被隐藏了,p标签之后的位置就发生了变化,此时浏览器就需要重新构建渲染树。重新布局。
重排一定导致重绘,重绘不一定导致重排
影响重绘重排的原因有
- 添加/删除dom元素
- 元素的尺寸和位置发生了改变
- 浏览器初始化
- 浏览器窗口发生了改变
减少重绘重排的方式 - 不在布局的时候添加dom查询
- 使用cssText,className一次性改变属性
- 使用fragsment片段。