DOM的回流和重绘,及优化

一、DOM的回流和重绘

    **DOM的回流**:当页面中元素的位置,大小或结构、定位发生改变,
    会引发浏览器对当前页面的结构进行重新的计算;非常耗性能的;

    **DOM的重绘**: 当元素的背景、透明度、颜色发生变化,
    那么浏览器会对元素进行重新描绘;这个过程就是浏览器的重绘;

二、优化(减少回流,重排)

1.浏览器本身放入优化策略:
浏览器会维护一个队列,把所有的引起回流,重绘的操作放入这个队列,等队列中的操作到了一定数量或是到了一定时间,浏览器就会flush队列,进行一个批处理。

2.我们要做的就是减少对render tree 的操作,减少一些style信息的请求。

  1. 将多次改变样式的操做合并成一次。
  2. 将需要多次重排的元素,position属性设为absolute或者fixed,这样次元素就脱离文档流,变化不会影响其他元素。
  3. 在内存中多次操作节点,完成后再添加到文档中去。比如,异步获取表格数据,再添加到页面中,我们可以先获取数据,在内存中构建整个表格的html结构,再一次性的添加到文档中去。而不是循环添加。
  4. 由于display属性为none的元素不在渲染树中,对隐藏元素的操作不会引发其它元素的重排。如果要对一个元素进行复杂操作,可以先影藏,操作完成后再显示。触发两次重排。
  5. 取浏览器重排的属性值,缓存到变量。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值