通俗点说,重绘就是改变某个节点的样式,重排就是增加或者删掉某些节点
所以说,重绘不一定会引起重排,但是重排一定会引起重绘。
也就是你写了一个html+css,重绘就是修改一下颜色,字体大小,背景等等;但是重排的话,就会在你原来的结构上,又增加了一个东西,把你的写的东西全打乱了,所以你需要重绘,把结构重新排版。
引起重排的原因:
1)添加、删除可见的dom
2)元素的位置改变
3)元素的尺寸改变(外边距、内边距、边框厚度、宽高等几何属性)
4)页面渲染初始化
5)浏览器窗口尺寸改变
如何减少重绘重排呢?
1.分离读写操作
2.集中改变样式
3.脱离文档流