1.重绘和重排
- 重排
当DOM变化影响了元素的几何属性,浏览器需要重新计算元素的几何属性,其他元素的几何属性和位置也会受到影响,重新构造渲染树,这就是重排 - 重绘
完成重排后,浏览器会重新绘制受影响的部分到屏幕,例如改变一个元素的背景色,不会影响元素的宽和高,这种情况会发生重绘
2.重排发生的场景
- 添加和删除可见DOM元素
- 元素位置改变
- 元素内容改变,如小文本被图片代替
- 页面渲染初始化
- 浏览器窗口尺寸改变
3.渲染树变化的排队和刷新
当对此改变元素的样式时,每次改变不会都引起重排和重绘,但是浏览器会将三次改变保存到队列中,并批量执行来优化重排过程,一次完成。
但是,如果通过offset,client,scroll,getComputedStyle等获取布局信息的操作会导致队列刷新,尽量不要在布局改变时做查询
网友评论