重绘(repaint)
当元素样式的改变不会影响布局时、浏览器将使用重绘对元素进行更新、此时由于只需要UI层面的重新像素绘制、因此损耗较少
回流(reflow)
当元素的尺寸、结构或触发某些属性时、浏览器会重新渲染页面、称为回流、此时、浏览器需要经过重新计算、计算后好需要重新页面布局、因此是较重的操作
触发回流的操作
页面初次渲染
浏览窗口大小发生改变
元素尺寸、位置、内容发生改变
元素字体大小改变
添加或者删除可见的我dom元素
激活css伪类(例如::hover)
查询某些属性或调用某些方法
8、clientWidth、clientHeight、clientTop、clientLeft、offsetWidth、offsetHeight、offsetTop、offsetLeft、scrollWidth、scrollHeight、scrollTop、scrollLeft、getComputedStyle()、getBoundingClientRect()、scrollTo()
触发重绘的操作
触发回流一定会触发重绘、重绘不一定触发回流、重绘的开销较小、回流的开销较大
1、颜色的修改
2、文本方向的修改
3、阴影的修改