前端渲染几十万条数据不卡顿

本文探讨如何在前端渲染几十万条数据时保持页面流畅,重点介绍了利用createDocumentFragment方法创建文档碎片节点以减少DOM操作次数,以及使用requestAnimationFrame优化动画性能,确保在浏览器刷新频率下集中执行DOM更新,降低CPU、GPU和内存使用。
摘要由CSDN通过智能技术生成

前端渲染几十万条数据不卡顿

渲染大数据时,合理使用createDocumentFragment和requestAnimationFrame,将操作分为一小段执行.

createDocumentFragment()方法

  1. 用来创建一个虚拟的节点对象,或者说说是用来创建文档碎片节点,可以包含各种类型的节点,在创建之初是空的.
  2. 创建的节点不属于文档树,继承的parentNode属性总是null,当请求把一个DocumentFragment节点插入文档树,插入的不是DocumentFragment自身,而是它的子孙节点,插入的是括号里的节点.它有利于实现文档的剪切,复制和粘贴.
  3. 当需要添加多个dom元素时,如果先将这些元素添加到DocumentFragment中,在统一将DocumentFragment添加到页面,会减少页面渲染dom的次数,效率会明显提升.

requestAnimationFrame

requestAnimationFrame比起setTimeout,setInterval的优势主要是两点:

  1. requestAnimationFrame会把每一帧中的所有dom操作集中起来,在一次重绘和回流中完成,并且重绘或回流的时间间隔紧紧会随浏览器的刷新频率,一般来说频率为每帧60秒
  2. 在隐藏不可见元素中,requestAnimationFrame将不会进行重绘或回流.有更少的cpu,gpu和内存使用量.
<body>
   <ul></ul>
   <script>
      const total = 100000
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值