1.重排和重绘的概念
- 重排: 部分渲染树(或者整个渲染树)需要重新分析并且节点尺寸需要重新计算。这被称为重排,注意这里至少会有一次重排——初始化页面布局。
- 重绘: 由于节点的几何属性发生改变或者由于样式发生改变,例如改变元素背景色时,屏幕上的部分内容需要更新。这样的更新被称为重绘。
2.什么情况下会触发重排和重绘:
- 添加、删除、更新DOM节点;
- 通过display:none隐藏一个DOM节点,触发重排和重绘;
- 通过visibility:hidden隐藏一个DOM节点,只触发重绘,因为没有发生几何变化;
- 移动或者给页面中的DOM节点添加动画;
- 添加一个样式表,调整样式属性;
- 用户行为,例如调整窗口大小,改变字号,或者滚动;