首页 > 其他 > 详细

前端优化处理大数据量

时间:2022-05-27 20:05:28      阅读:3      评论:0      收藏:0      [点我收藏+]

当有些地方不便于分页处理,但数据量较大时,页面往往出现卡死或者用户等待时间过长问题

解决:

// data为所有数据的数组 , callback 拿到当数据要做的操作 ,pageSize 一次取多少条
export function UtilHandleBigData(data, callback, pageSize = 100) {
  let totalCount = data.length; // 共多少条
  let currentPageNumber = 1; // 当前页数
  let totalPageNumer = Math.ceil(totalCount / pageSize); //可分多少页,就是分割为多少个小数组
  
  let handler = () => {
    let start = (currentPageNumber - 1) * pageSize;
    let end = currentPageNumber * pageSize;
    let currentData = data.slice(start, end); // 当前页的数据
    if (typeof callback === "function") {
      callback(currentData, {
        totalCount,
        totalPageNumer,
        currentPageNumber,
        pageSize,
      });
    }
    // console.log(
    //   `共${totalCount}条,共${totalPageNumer}页,当前第${currentPageNumber}条`
    // );
  // 未执行完,继续执行
if (currentPageNumber < totalPageNumer) { window.requestAnimationFrame(handler); } currentPageNumber++; }; handler(); }

调用:

let allData = [0, 1, 2 /**...很多条*/];
// data 为分割的小数组
UtilHandleBigData(allData, data => {
  // do something...
});

 

前端优化处理大数据量

原文:https://www.cnblogs.com/Console-LIJIE/p/15343413.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!