如何最小化重绘和回流?

359 阅读1分钟

如何最小化重绘和回流?

1.概念

重绘(Repaint):当元素的一部分属性发生改变,例如外观,背景,颜色等不会引起布局的变化,只需要浏览器根据元素的新属性重新绘制,使元素呈现新的外观 叫做重绘.

回流(reflow):当渲染树中的一部分或者全部因为大小边距等问题发生改变而需要DOM树重新计算的过程.

2.关系

回流必然导致重绘,重绘不一定会引起回流

3.最小化重绘和回流的方法

(1)元素进行复杂操作时候,可以先隐藏(display:none),操作完后在显示

(2)避免使用css表达式,因为每次都会重新计算

(3)尽量使用css属性简写,如:用border代替border-width,border-color

(4)批量修改元素样式: elem.style.xxx

(5)需要创建多个DOM节点时,使用DocumentFragment创建完后一次性加入