IT俱乐部 JavaScript Element-plus表格数据延迟加载的实现方案

Element-plus表格数据延迟加载的实现方案

在前端展示数据量过大的表格时,会出现加载卡顿问题。

目前业务场景(加载数据量过五万条的数据在表格中展示)

解决方案:延迟加载,设置加载数量,首先加载展示一定数量的数据,监听表格的滚动条事件,当滚动到可视化数据量的最底部触发再加载数据事件

展示效果图:

        当滚动到前一次加载的数据量结束后,触发再加载事件。如图

上代码:

{{ loadDataMesssage }}

        其中,添加类选择器 class=”scrollbar”,主要作用是方便找到对应表格的滚动条

let data: any = [];
let data2: any = [];
let data3: any = [];
let data4: any = [];
let data5: any = [];
// 当前已加载的数据量
let loadedDataCount = 0;
const scrollTableDom = ref();
const loadDataMesssage = ref('');
const loadData = () => {
    if (data.length  {
    const target = event.target;
    const scrollContainer = target;
    const scrollPosition = scrollContainer.scrollHeight - scrollContainer.scrollTop - scrollContainer.clientHeight;
    if (scrollPosition = data.length) {
        console.log('数据为空,无法加载更多数据');
        loadDataMesssage.value = '已经到底了';
    } else {
        loadDataMesssage.value = '';
    }
};

        我在这里设置了两种加载方式,当数据量少于500条时,就直接赋值给表格,不会出现打开表格卡顿,当数据量大于500条时,进行分批加载数据。

        通过类选择器找到表格滚动条并进行监听绑定事件,handleScroll

 scrollTableDom.value = document.querySelector('.scrollbar .el-table__body-wrapper .el-scrollbar__wrap');
        if (scrollTableDom.value) {
            scrollTableDom.value.addEventListener("scroll", handleScroll);
        }
const handleScroll = (event: any) => {
    const target = event.target;
    const scrollContainer = target;
    const scrollPosition = scrollContainer.scrollHeight - scrollContainer.scrollTop - scrollContainer.clientHeight;
    if (scrollPosition = data.length) {
        console.log('数据为空,无法加载更多数据');
        loadDataMesssage.value = '已经到底了';
    } else {
        loadDataMesssage.value = '';
    }
};

到此这篇关于Element-plus表格数据延迟加载的文章就介绍到这了,更多相关Element-plus延迟加载内容请搜索IT俱乐部以前的文章或继续浏览下面的相关文章希望大家以后多多支持IT俱乐部!

本文收集自网络,不代表IT俱乐部立场,转载请注明出处。https://www.2it.club/navsub/js/14200.html
上一篇
下一篇
联系我们

联系我们

在线咨询: QQ交谈

邮箱: 1120393934@qq.com

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部