重绘和回流

重绘:当我们对元素盒子的修改引发其发生样式的变化,却并未影响其几何尺寸时(比如修改了颜色,背景色等),浏览器不需要重新计算元素的几何尺寸。直接为该元素绘制新的样式,这个过程叫做重绘。

回流:当我们对元素盒子的修改引发其发生几何尺寸的变化(比如修改元素的高、宽、隐藏元素、页面一开始渲染、元素位置发生改变、添加或者删除DOM元素等),浏览器需要重新计算元素的几何属性,其他元素的几何属性和位置也会因此受到影响,然后再将重新计算的结果绘制出来,这个过程叫做回流。

由此我们可以看出,重绘不一定导致回流,回流一定会导致重绘

如何减少重绘和回流

1、基于vue、react数据驱动视图开发。

2、避免使用table布局,table中每个元素的大小以及内容的改动,都会导致整个table重新计算。

3、对元素进行复杂操作时可以先display:none隐藏元素,操作完成之后在diaplay:block。

4、避免频繁操作样式,最好一次性重写sytle属性。

5、尽量使用css属性简写,比如用border代替border-width,border-style,border-color。

6、避免频繁操作DOM,创建一个documentFragment,在它上面应用所有DOM操作,最后再把它添加到文档中。

7、尽可能在DOM树的最末端改变class,回流是不可避免的,但可以减少其影响。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值