当前位置: 首页 > news >正文

【性能优化】虚拟懒加载(下拉滚动加载长列表)element-puls+el-table

目录

  • 前言
  • 一、卡顿的原因?
  • 二、解决
    • 1、滚动懒加载
    • 2.官方
  • 总结


前言

提示:这里可以添加本文要记录的大概内容:

在element-plus中,如果数据超过1k,就会感觉到明显的卡顿,应该是渲染的卡顿吧。反正我在请求回来接口之后,loading,会卡顿。用户体验十分不佳。然后吧,这个列表还不能分页,得全部展示出来,因为设计的,不能改,上面要求。。。
好吧,现在开始优化~

(一定要说一句,我们项目的分页一般都是前端做的分页,感觉体验十分不佳,为什么就不好好的后端分页尼,因为说不过)


提示:以下是本篇文章正文内容,下面案例可供参考

一、卡顿的原因?

请求接口返回之后,关闭loading,但是界面并没有及时的关闭,这个问题,应该是有什么阻塞了,开始定位,发现,应该是界面中的一个长列表没有进行懒加载优化,导致渲染DOM,花费了太长的时间。然后kakaka

二、解决

1、滚动懒加载

代码如下(示例):

<el-tableid="lazyLoad":data="showDataL":max-height="temp_len_l">...
</el-table>

/*** @desc table懒加载*/
const lazyLoading = () => {// 这个地方就是为了得到滚动的那个元素,大家随意let dom = document.getElementById("lazyLoad");let scrollDOM = dom.querySelector(".el-scrollbar__wrap");scrollDOM.addEventListener("scroll", (v) => {const scrollDistance = scrollDOM.scrollHeight - scrollDOM.scrollTop - scrollDOM.clientHeight;if (scrollDistance <= 1) {if (pagination.page < pagination.totalPage) {//当前页数小于总页数就重新设置table的数据pagination.page++; //当前页数自增console.log("页面已经到达底部,可以重新设置table数据,现在是加载第 " + pagination.page +" 页数据");showDataL.value = dataL.value.slice(0, pagination.page * 20)}}});
};onMounted(() => {lazyLoading();
});

2.官方

官方有一个虚拟表格,目前孩子啊测试阶段,大家也可以尝试一下,我就不贴出来了
点击进入


总结

提示:这里对文章进行总结:

长列表性能优化,主打一个减少DOM元素的一次性渲染加载

相关文章:

【性能优化】虚拟懒加载(下拉滚动加载长列表)element-puls+el-table

目录 前言一、卡顿的原因&#xff1f;二、解决1、滚动懒加载2.官方 总结 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 在element-plus中&#xff0c;如果数据超过1k&#xff0c;就会感觉到明显的卡顿&#xff0c;应该是渲染的卡顿吧。反正我在请求回…...

一对多映射处理

8.3.1 、collection /** * 根据部门id查新部门以及部门中的员工信息 * param did * return */ Dept getDeptEmpByDid(Param("did") int did);<resultMap id"deptEmpMap" type"Dept"> <id property"did" column"did&quo…...

关于IDEA没有显示日志输出?IDEA控制台没有显示Tomcat Localhost Log和Catalina Log 怎么办?

问题描述&#xff1a; 原因是;CATALINA_BASE里面没有相关的文件配置。而之前学习IDEA的时候&#xff0c;把这个文件的位置改变了。导致&#xff0c;最后输出IDEA的时候&#xff0c;不会把日志也打印出来。 检查IDEA配置; D:\work_soft\tomcat_user\Tomcat10.0\bin 在此目录下&…...

蛇形填数 rust解法

蛇形填数。 在nn方阵里填入1&#xff0c;2&#xff0c;…&#xff0c;nn&#xff0c;要求填成蛇形。例如&#xff0c;n&#xff1d;4时方阵为&#xff1a; 10 11 12 1 9 16 13 2 8 15 14 3 7 6 5 4 解法如下&#xff1a; use std::io;fn main() {let mut buf String::new();…...

一文探索SD-WAN技术进阶后与MPLS的区别

在网络通信领域&#xff0c;随着云计算和大数据等新兴技术的快速发展&#xff0c;企业对于网络的可靠性、安全性以及带宽的需求越来越高。 SD-WAN&#xff08;软件定义广域网&#xff09;和MPLS&#xff08;多协议标签交换&#xff09;是两种不同的网络连接技术&#xff0c;它们…...

RocketMq(四)消息分类

一、普通消息 1、同步发送消息&#xff1a;指的是Producer发出⼀条消息后&#xff0c;会在收到MQ返回的ACK之后才发下⼀条消息。该方式的消息可靠性最高&#xff0c;但消息发送效率低。 二、顺序消息 三、延时消息...

ip地址怎么改网速快

在当今高度依赖互联网的时代&#xff0c;快速稳定的网络连接对于人们的生活和工作至关重要。然而&#xff0c;有时我们可能会遇到网络速度缓慢的问题。虽然更改IP地址并不能直接影响网络速度&#xff0c;但它可以成为改善网络连接的一种策略之一。虎观代理小二二将探讨如何通过…...

植物大战僵尸各种僵尸攻略(四)

前言 此文章为“植物大战僵尸”专栏中的011刊&#xff08;2023年9月第十刊&#xff09;&#xff0c;欢迎订阅。版权所有。 注意&#xff1a; 1.本博客适用于pvz无名版&#xff1b; 2.pvz指植物大战僵尸&#xff08;Plants VS Zonbies)&#xff1b; 3.本文以耗费低做标准&am…...

main函数中两个参数的作用

一般我们在使用C语言时不太用到main函数自带的参数&#xff0c;因此最常见的main函数就像下面这样。 int main() {...... }上面这种main函数是省略了其形参的&#xff0c;C语言中规定main函数的参数只能有两个&#xff0c;习惯上这两个参数写为argc和argv&#xff0c;其中&…...

华为OD机试 - 连续字母长度 - 字符串(Java 2023 B卷 100分)

目录 专栏导读一、题目描述二、输入描述三、输出描述1、输入2、输出3、说明4、再输入5、输出6、说明 四、解题思路五、Java算法源码六、效果展示1、输入2、输出3、说明 华为OD机试 2023B卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试&#xff08…...

想要精通算法和SQL的成长之路 - 填充书架

想要精通算法和SQL的成长之路 - 填充书架 前言一. 填充书架1.1 优化 前言 想要精通算法和SQL的成长之路 - 系列导航 一. 填充书架 原题链接 题目中有一个值得注意的点就是&#xff1a; 需要按照书本顺序摆放。每一层当中&#xff0c;只要厚度不够了&#xff0c;当前层最高…...

【ROS入门】ROS的核心概念

文章结构 通信机制节点(Node)——执行单元节点管理器(ROS Master)——控制中心话题通信——异步通信机制话题(Topic)消息(Message)——话题数据 服务通信——同步通信机制服务(Service) 话题和服务的区别参数(Parameter)——全局共享字典 文件系统功能包&#xff08;Package&am…...

Python爬虫从端到端抓取网页

网页抓取和 REST API 简介 网页抓取是使用计算机程序以自动方式从网站提取和解析数据的过程。这是创建用于研究和学习的数据集的有用技术。虽然网页抓取通常涉及解析和处理 HTML 文档&#xff0c;但某些平台还提供 REST API 来以机器可读格式&#xff08;如 JSON&#xff09;检…...

这10款类似Stable Diffusion的ai绘图软件,你了解多少?

Stable Diffusion这款ai软件有哪些可以替代的软件&#xff1f;好用的类似Stable Diffusion的ai软件推荐&#xff0c;那么今天就跟着赞奇云工作站小编一起来看看吧。 什么是Stable Diffusion&#xff1f; 称为“Stable Diffusion”的文本到图像模型可以将任何文本转换为逼真、…...

部署ik分词器

部署ik分词器 案例版本&#xff1a;elasticsearch-analysis-ik-8.6.2 ​ ES默认自带的分词器对中文处理不够友好&#xff0c;创建倒排索引时可能达不到我们想要的结果&#xff0c;然而IK分词器能够很好的支持中文分词 ​ 因为是集群部署&#xff0c;所以每台服务器中的ES都需…...

基于STM32+华为云IOT设计的智能垃圾桶

一、项目介绍 在商业街、小吃街和景区等人流密集的场所&#xff0c;垃圾桶的及时清理对于提供良好的游客体验至关重要。然而&#xff0c;传统的垃圾桶清理方式通常是定时或定期进行&#xff0c;无法根据实际情况进行及时响应&#xff0c;导致垃圾桶溢满&#xff0c;影响环境卫…...

板子接线图

1.ST-LINK V2接线 2.对抗板子刷蓝牙固件 接USB转TTL&#xff0c;用镊子短接两个孔 2.对抗板子用串口测试蓝牙AT命令 短接白色箭头&#xff0c;接TX&#xff0c;RX&#xff0c;电源...

Python练习之选择与循环

目录 1、编写程序&#xff0c;运行后用户输入4位整数作为年份&#xff0c;判断其是否为闰年。提示&#xff1a;如果年份能被400整除&#xff0c;则为闰年&#xff1b;如果年份能被4整除但不能被100整除也为闰年。2、编写程序&#xff0c;用户从键盘输入小于 1000 的整数&#x…...

MySQL5.7开启通用日志功能

起因&#xff1a; 因项目数据库占用异常&#xff0c;查询数据库有哪些IP地址连接使用&#xff08;Windows环境下&#xff09;。 操作步骤&#xff1a; 1、修改MySQL服务的my.ini 文件 # 开启通用查询日志 general_log 1 log_output …...

WPF控件模板

在过去&#xff0c;Windows开发人员必须在方便性和灵活性之间做出选择。为得到最大的方便性&#xff0c;他们可以使用预先构建好的控件。这些控件可以工作的足够好&#xff0c;但可定制性十分有限&#xff0c;并且几乎总是具有固定的可视化外观。偶尔&#xff0c;某些控件提供了…...

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…...

云计算——弹性云计算器(ECS)

弹性云服务器&#xff1a;ECS 概述 云计算重构了ICT系统&#xff0c;云计算平台厂商推出使得厂家能够主要关注应用管理而非平台管理的云平台&#xff0c;包含如下主要概念。 ECS&#xff08;Elastic Cloud Server&#xff09;&#xff1a;即弹性云服务器&#xff0c;是云计算…...

树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频

使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源&#xff1a; http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...

遍历 Map 类型集合的方法汇总

1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...

解锁数据库简洁之道:FastAPI与SQLModel实战指南

在构建现代Web应用程序时&#xff0c;与数据库的交互无疑是核心环节。虽然传统的数据库操作方式&#xff08;如直接编写SQL语句与psycopg2交互&#xff09;赋予了我们精细的控制权&#xff0c;但在面对日益复杂的业务逻辑和快速迭代的需求时&#xff0c;这种方式的开发效率和可…...

使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装

以下是基于 vant-ui&#xff08;适配 Vue2 版本 &#xff09;实现截图中照片上传预览、删除功能&#xff0c;并封装成可复用组件的完整代码&#xff0c;包含样式和逻辑实现&#xff0c;可直接在 Vue2 项目中使用&#xff1a; 1. 封装的图片上传组件 ImageUploader.vue <te…...

Spring AI 入门:Java 开发者的生成式 AI 实践之路

一、Spring AI 简介 在人工智能技术快速迭代的今天&#xff0c;Spring AI 作为 Spring 生态系统的新生力量&#xff0c;正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务&#xff08;如 OpenAI、Anthropic&#xff09;的无缝对接&…...

使用Spring AI和MCP协议构建图片搜索服务

目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式&#xff08;本地调用&#xff09; SSE模式&#xff08;远程调用&#xff09; 4. 注册工具提…...

Java编程之桥接模式

定义 桥接模式&#xff08;Bridge Pattern&#xff09;属于结构型设计模式&#xff0c;它的核心意图是将抽象部分与实现部分分离&#xff0c;使它们可以独立地变化。这种模式通过组合关系来替代继承关系&#xff0c;从而降低了抽象和实现这两个可变维度之间的耦合度。 用例子…...

基于Springboot+Vue的办公管理系统

角色&#xff1a; 管理员、员工 技术&#xff1a; 后端: SpringBoot, Vue2, MySQL, Mybatis-Plus 前端: Vue2, Element-UI, Axios, Echarts, Vue-Router 核心功能&#xff1a; 该办公管理系统是一个综合性的企业内部管理平台&#xff0c;旨在提升企业运营效率和员工管理水…...