reflow(回流)和repaint(重绘)

2022-11-21  本文已影响0人  Rebirth_914

在浏览器渲染页面的过程中,页面中的代码进行渲染时,已经使浏览器不堪重负了,如果当用户使用时,替换一个背景颜色,或者更换一个样式,那么我们的浏览器又需要重新加载代码,而在这个过程中,浏览器又一次的受到了压力,日复一日说不定哪天就崩掉了。 而主要影响页面渲染速度的为:reflow和repaint

1.reflow(回流)

为什么页面加载会慢,因为浏览器需要花时间、花精力去渲染,尤其是当它发现某个部分发生变化时影响到布局,就需要倒回去重新渲染,这个’倒回去渲染的过程‘就叫做reflow(回流)

2.repaint(重绘)

如果变化的元素,只是更改了元素的背景色,文字颜色、边框颜色等等不影响它周围或者内部布局的属性,那这种行为只会引起repaint(重绘),所以repaint的速度明显比reflow快

3.尽量减少reflow

1.reflow是导致DOM脚本执行力较低的关键因素之一,页面上任何一个结点触发reflow,都会导致它全部节点重新渲染。以下情况会导致reflow发生:

1.改变窗口大小
2.改变文字大小
3.添加/删除样式
4.内容的改变,如用户在输入框进行输入文字
5.激活伪类,如hover,active等
6.操作class属性
7.脚本操作DOM
8.计算offsetWidth或者offsetHeight
9.设置style属性

2.reflow是不可避免的,只能将reflow对性能的影响见到最小:

3.该如何好的避免reflow

上一篇 下一篇

猜你喜欢

热点阅读