重排:
- 重排是指更改页面的布局和几何结构,导致浏览器需要重新计算元素的大小和位置,然后进行页面渲染的过程。
- 重排会影响整个页面或者部分页面的布局。
- 常见的操作会导致重排的有 1.添加或删除元素,2.改变元素样式,3.移动元素位置等。
重绘:
- 重绘是指在页面布局不变的情况下,由于样式的改变导致浏览器重新绘制页面元素的过程。
- 重绘只是重新绘制已经计算好布局的元素。
- 常见的操作会导致重绘的有 1.改变颜色,改变背景颜色,文字颜色等。
注意:重排一定会触发重绘,但重绘不一定会触发重排。
总结:为了提升页面的性能跟用户的体验,要尽量减少触发重排跟重绘。
减少重排:
- 使用css3动画替代JavaScript操作。
- 避免使用table布局。
- 当需要修改页面样式时,尽量减少影响整个布局的样式更改,精准修改仅需更新的部分。
- 使用 translate 替代 top/left 进行元素移动,因为 translate 不会触发重排,只会引起重绘。