Element-UI表格懒加载数据,只需请求一次后台数据

         项目开发不需要分页,客户不想点来点去,想要表格数据全部显示出来,但是表格数据每次都有七八千条,界面根本加载不出来,经常卡死,把客户气得要死。

        后台又不想写分页,说他数据请求的很快,只要一两秒,然后问题只能我来解决,只能写一个表格懒加载,代码如下:

this.allData = pos;//所有数据,将近一万条,pos是返回的数据
this.tabData = [];//定义个二维数组来存每页20条的数据
for (var i = 0, leng = this.allData.length; i < leng; i++) {
    if (i % this.pageSize === 0) {//当前为20的倍数就添加一个数组
        this.tabData.push(this.allData.slice(i, i + this.pageSize));
    }
}
this.total = this.tabData.length;//数据总页数
this.tabList = this.tabData.length > 0 ? this.tabData[0] : [];

tableListener() {
    let that = this;
    let dom = that.$refs.tabList.bodyWrapper;
    dom.addEventListener("scroll", function () {
        const scrollDistance = dom.scrollHeight - dom.scrollTop - dom.clientHeight;
        if (scrollDistance <= 0) {//等于0证明已经到底,可以将下一页添加到表格
            if (that.currentPage < that.total) {//当前页数小于总页数就添加
                that.currentPage++;//当前页数自增
                //将下一页添加到表格数据
                for (let i = 0, leng = that.tabData[that.currentPage-1].length; i < leng; i++)             
                {    
                    that.tabList.push(that.tabData[that.currentPage-1][i]);
                }
             }
        }
    })
}

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值