不爱学习的小码农 2023-03-02 11:12 采纳率: 12.5%
浏览 56

小程序上拉加载数据导致渲染数据的数组数据累加,页面卡顿

我小程序使用uniapp写的其中一个页面有多条数据,第一次进入只会渲染十条,上拉加载一次会调用一次接口请求十条数据,所以导致每次上拉都会pushu进十条数据,导致我这个接收数据的数组数据过多导致页面卡顿请问如何优化这个方法。

/*上拉加载的回调: mescroll携带page的参数, 其中num:当前页 从1开始, size:每页数据条数,默认10 */
            upCallback(mescroll) {
                //联网加载数据
                this.getList(
                    mescroll.num,
                    mescroll.size,
                    this.searchField,
                    this.regionCode,
                    this.industryId,
                    this.groupId,
                    this.stateId,
                    this.OrderBy,
                    res => {
                        if (res.success) {
                            //设置列表数据
                            if (mescroll.num == 1) {
                                this.detail = []; //如果是第一页需手动置空列表
                            }
                            
                            this.detail = this.detail.concat(res.data.list);
                            console.log("上拉加载", this.detail);
                            let list = res.data.list;
                            // 组态按钮判断
                            this.showGraphicBtn();
                            // 获取当前用户是否拥有权限操作项目
                            // this.getUsetProject();
                            //获取总设备和今日报警总数
                            for (let i = 0; i < list.length; i++) {
                                var num = list[i].id;
                                // this.getDeviceNum(num);
                                this.getDeviceScnt(num);
                                num = null;
                            }
                            mescroll.endBySize(list.length, res.data.total);
                        } else {
                            uni.showToast({
                                icon: 'none',
                                title: res.error
                            });
                        }
                    },
                    () => {
                        //联网失败的回调,隐藏下拉刷新的状态
                        mescroll.endErr();
                    }
                );
            },

this.detail这个是我渲染页面数据的数组

  • 写回答

4条回答 默认 最新

  • 发狂精灵 2023-03-02 11:28
    关注

    可以写个布尔值变量去监听上次上拉加载数据是否完成,完成之后才执行之后的上拉加载,类似于防抖

    评论

报告相同问题?

问题事件

  • 创建了问题 3月2日

悬赏问题

  • ¥15 关于Lammps建模的描述
  • ¥15 #lingo#请问一下为什么会出现以下情况,是因为l第一个值是0的缘故吗?
  • ¥15 设计格雷码同步八进制计数器
  • ¥100 改写matlab程序(关键词-系统对)
  • ¥15 函数信号发生器仿真电路
  • ¥15 Qt的pixmap和image图片加载都导致程序崩溃怎么办
  • ¥15 Kali木马生成问题求解
  • ¥30 求一下解题思路,完全不懂
  • ¥15 C51单片机串口控制JQ6500语音模块
  • ¥30 想给yolo5模型加一个图片识别界面,但是图片还没有检测出来就闪退了