1.什么是重绘与回流?
1.1.重绘
给一个元素更换颜色,更换背景,不会影响页面布局,但是页面颜色或背景变了,就会重新渲染页面。
1.2回流
当增加或删除Dom节点,或者给元素修改宽高,影响页面布局,那么就会重新构造dom树然后再次进行渲染。
2.重绘与回流的区别?
1.重绘不会引起dom结构和页面布局的变化,只是样式的变化,有重绘不一定有回流。
回流会引起dom结构和页面布局的变化,有回流就一定有重绘。
3.怎么减少回流?
1,几何属性的变化
比如改变元素的宽高,字体大小等,这种会直接引起页面布局变化会直接引起回流,所以如果想改变多个属性,最好将这些属性定义在一个class中,直接修改class名,只引起一次回流。
2.获取元素的偏移量属性
例如获取一个元素的scrollTop、scrollLeft、scrollWidth、offsetTop、offsetLeft、offsetWidth、offsetHeight之类的属性,浏览器为了保证值的正确也会回流取得最新的值,所以如果你要多次操作,最取完做个缓存。