重流与重绘

重流和重绘

重流一定导致重绘,重绘不一定会重流,应该设法降低重绘的次数和成本,尽量不要变动高层DOM元素,以底层DOM元素的变动代替。
浏览器会积累DOM变动,然后一次性执行。
一些优化的技巧:
1、读取DOM结合写入DOM尽量写在一起不要混杂
2、缓存DOM信息
3、不要一项一项的改变样式,而是使用CSS class一次性改变样式
4、使用document fragment操作DOM
5、动画时使用absolute或fixed定位,这样可以减少对其他元素的影响
6、只在必要时才显示元素
7、使用window.requestAnimationFrame(),他可以把代码推迟到下一次重流时执行,而不是立即要求页面重流
8、使用虚拟DOM库

关于重流重绘的定义自行百度