网站常见性能优化

本文探讨了如何在网页开发中减少重绘和重排,以提升用户体验和网页性能。介绍了常见的引起重排的操作,并提供了优化策略,如合并样式更改、使用绝对定位、操作内存中节点及应用fragment元素。
  1. 减少重绘和重排
    会引起重排的操作:
    • 添加或者删除可见的DOM元素
    • 元素位置改变
    • 元素尺寸改变
    • 元素内容改变(例如:一个文本被另一个不同尺寸的图片替代)
    • 页面渲染初始化(这个无法避免)

浏览器窗口尺寸改变如今浏览器大部分已经针对重排做了优化,通过队列优化修改并批量执行优化重排过程,一次性完成,但某些DOM操作会导致浏览器强制刷新队伍并要求计划任务立即执行,如获取元素的布局信息操作。

在开发中应当尽量减少重排次数和缩小重排的影响范围。

  1. 将多次改变样式属性的操作合并成一次操作,或者先集合操作获取属性,再集中操作修改属性
  2. 将需要多次重排的元素,position属性设为absolutefixed,这样此元素就脱离了文档流,它的变化不会影响到其他元素。例如有动画效果的元素就最好设置为绝对定位。
  3. 在内存中多次操作节点,完成后再添加到文档中去。如先生成HTML字符串,再整体赋值。
  4. 由于display属性为none的元素不在渲染树中,对隐藏的元素操作不会引发其他元素的重排。如果要对一个元素进行复杂的操作时,可以先隐藏它,操作完成后再显示。
  5. 在需要经常获取那些引起浏览器重排的属性值时,要缓存到变量。
  6. fragment元素的应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值