浅析如何利用时间分片高性能渲染十万级数据

本文探讨了一次性渲染大量数据时如何避免页面卡顿,重点介绍了时间分片技术,包括使用定时器、requestAnimationFrame以及DocumentFragment进行优化,解决了页面卡顿和闪屏现象,提升了用户体验。
摘要由CSDN通过智能技术生成

  在实际工作中,我们很少会遇到一次性需要向页面中插入大量数据的情况,但是为了丰富我们的知识体系,我们有必要了解并清楚当遇到大量数据时,如何才能在不卡主页面的情况下渲染数据,以及其中背后的原理。对于一次性插入大量数据的情况,一般有两种做法:

1、时间分片

2、虚拟列表

  我们首先来看一下“时间分片”的原理。

一、最粗暴的做法(一次性渲染)

  我们先来看看最粗暴的做法,一次性将大量数据插入到页面中:

<ul id="container"></ul>

  let now = Date.now()
  let total = 100000
  let ul = document.getElementById('container')
  for (let i=0; i<total;i++) {
    let li = document.createElement('li')
    li.innerHTML = i
    ul.appendChild(li)
  }
  console.log('JS运行时间:', Date.now() - now)
  setTimeout(_ => {
    console.log('渲染总运行时间:&#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

短暂又灿烂的

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值