Repaint又叫Redraw,重绘,它是指一种不影响当前dom结构的和布局的一种重绘动作。
以下的动作都会促发Repaint:
- 不可见或可见(visibility);
- 颜色和图片改变(background,border-color,color之类的属性);
- 不改变页面元素大小,形状和位置,但改变其外观的变化。
Reflow,又叫重构, 比起 Repaint 来讲就是一种更加显著的变化了。它主要发生在 DOM 树被操作的时候,任何改变 DOM 的结构和布局都会产生 Reflow。但一个元素的 Reflow 操作发生时,它的所有父元素和子元素都会发生 Reflow,最后 Reflow 必然会导致 Repaint 的产生。
以下的动作都会促发Reflow:
- 浏览器窗口的变化;
- DOM 节点的添加删除操作;
- 一些改变页面元素大小,形状和位置的操作的触发。
每次 Reflow 比其 Repaint 会带来更多的资源消耗,我们应该尽量减少 Reflow 的发生。
参考:http://www.cnblogs.com/sniper007/archive/2012/12/24/2831328.html