重新焊接和重新绘制有什么区别?
我有点不清楚reflow + repaint之间的区别(如果有什么区别的话)
似乎回stream可能正在改变各种DOM元素的位置,重绘只是渲染一个新的对象。 例如,当移除元素时会发生回stream,并且在改变颜色时会发生重绘。
这是真的?
这篇文章似乎涵盖了回stream与重绘性能问题
至于定义,从这个职位:
在对更改可见性的元素外观进行更改时发生重绘,但不影响其布局。
这方面的例子包括轮廓,可视性或背景颜色。 根据Opera的说法,重绘是昂贵的,因为浏览器必须validationDOM树中所有其他节点的可见性。
回stream对性能来说更为重要,因为它涉及影响页面(或整个页面)部分布局的更改。
在我看来,重绘只影响DOM本身,但重排影响整个页面。
当某些只有其肤色风格(如颜色和可见性)发生变化时才会进行重绘。
当DOM的页面改变其布局时发生回stream。
最近我发现一个网站可以search哪个属性会触发重绘或重排。 http://csstriggers.com/
这是另一个伟大的职位: http : //blog.letitialew.com/post/30425074101/repaints-and-reflows-manipulating-the-dom
重绘或重绘会遍历所有元素,并确定其可见性,颜色,轮廓和其他视觉样式属性,然后更新屏幕的相关部分。
回stream计算页面的布局。 元素的回stream会重新计算元素的尺寸和位置,并且还会触发元素的子元素,祖先和DOM元素之后出现的元素的进一步回stream。 然后它调用最后的重绘。 回stream是非常昂贵的。
还介绍了何时发生回stream以及如何使回stream最小化。