js 无限列表infinityList

  1. 新闻类app,或者现在流行的视频app,用户需要无感知上下拉取无限资源
  2. 100万条数据怎么加载到页面上,考虑加载,性能等
      // 插入十万条数据
      const total = 100000
      // 一次插入 * 条,如果觉得性能不好就减少
      const once = 200
      // 渲染数据总共需要几次
      const loopCount = total / once
      let countOfRender = 0
      const looptimer = setTimeout(() => {

      let ul = document.getElementById("ntp-contents");
      function add() {
        // 优化性能,插入不会造成回流
      const fragment = document.createElement('li');
        for (let i = 0; i < once; i++) {
          const li = document.createElement("li");
          //   li.innerText = Math.floor(Math.random() * total);
          li.innerText = `这里是第 ${countOfRender} 次的 li ${i}`;
          fragment.appendChild(li);
        }
        ul.appendChild(fragment);
        countOfRender += 1;
        loop();
      }
      function loop() {
        if (countOfRender < loopCount) {
          window.requestAnimationFrame(add);
        }else{
        clearInterval(looptimer)
      }
      }
      loop();
    }, 0);

常见的大量数据加载策略,分段加载,但是整个页面元素还是太多,滑动会引起卡顿

你可能感兴趣的:(js 无限列表infinityList)