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