重排:
当dom的变化影响了元素的几何信息(位置),浏览器需要计算元素的几何属性,将其安放在界面中的正确位置,这个过程叫做重排,表现为重新生成布局,重新排列元素。
重绘:
当一个元素(颜色 字体颜色)的外观被改变,但是没有改变布局,重新把元素外观绘制出来的过程,叫做重绘,表现为某些元素的外观被改变;
重排和重绘会消耗浏览器的性能(会去计算浏览器的内存空间 占据cpu)会造成页面卡顿,ui展示迟缓。
相比之下,重排性能影响更大,两者无法避免选择重绘.
重绘不一定出现重排,但是重排一定出现重绘.
触发重排和重绘:
1.添加、删除(重排)、更新节点(重绘)
2.通过display:none(重排)
3.通过visiblity:hidden(重绘)
4.添加动画(重排)
5.添加一个样式表(重排)
6.用户行为(重排或者重绘)