浏览器渲染的回流和重绘-创新互联

浏览器渲染html页面的流程基本上分为四步:

1、计算CSS样式
2、构建Render Tree
3、Layout 定位坐标和大小
4、正式开始渲染

那么,首先要提出两个重要概念,一个是Relfow,一个是Repaint。

创新互联建站坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站制作、做网站、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的阳西网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

重绘:当我们对DOM的修改导致了样式变化,也就是说DOM的CSS样式发生改变,但是几何属性并没有改变,比如只是修改了DOM的颜色、背景色时,浏览器不需要重新计算元素的几何属性,直接为该元素绘制新的样式。

回流:当我们对DOM的修改改变了DOM的几何尺寸,比如修改了元素的宽、高或隐藏元素等,那么浏览器需要重新计算元素的几何属性;因为该元素相邻元素的几何属性和位置都会受到影响。然后再将计算的结果重新绘制出来,这个过程称为回流。

我们知道,网页生成的时候,至少会渲染一次。刷新和回退都会不断的重新渲染,每次的重新渲染必然会引发回流+重绘,有时候只是重绘。

回流必然引发重绘,但是重绘则不一定会引起回流。

如果重回和回流在设置节点时频发出现,那么很大程度上影响页面的性能。回流所需的成本比重绘高的多,改变父节点里的子节点,会导致父节点的一系列回流。

常见引起回流的属性和方法

1、添加或者删除可见的DOM元素;

2、元素尺寸的改变,margin、padding、border、width、height

3、内容变化,比如用户在input框中输入文字

4、浏览器窗口尺寸的改变——resize事件发生时

5、计算offsetWidth 或者offsetLeft属性

6、设置style的属性值

常见引起重绘的属性和方法

color、border-style、visibility、background、background-image、background-size、background-position、background-repeat、border-radius、box-shadow、outline、outline-color、outline-style、outline-width

如何减少回流、重绘

使用transform代替top、使用visibility代替display:none,因为前者会引起重绘而后者会引起回流。

不要把DOM节点作为循环变量使用。

不要使用table布局,table基本都是回流。

动画实现的速度越快,回流次数越多。

CSS选择符从右向左匹配查找,避免节点层级过多。

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


分享名称:浏览器渲染的回流和重绘-创新互联
浏览路径:http://scyanting.com/article/csjgio.html