【工作中遇到的性能优化问题】

news/2024/10/31 3:30:58/

项目场景:

页面左侧有一列表数据,点击列表项会查对应的表格数据和表单信息(表单是根据数据配置生成的),并在右侧展示。如果数据量大,则非常卡。
需要对此页面进行优化。


问题描述

问题一、加载左侧数据时,默认选中第一条数据,会去调用查表单明细的接口,然后渲染数据。有一定的卡顿,1000条数据卡顿6s左右。
问题二、点击左侧数据,会去调用查询表单明细的接口,然后渲染数据。有一定的卡顿,1000条数据卡顿6s左右。

此时,需要明确是加载数据慢,还是运行渲染慢、体验不流畅的问题。


原因分析:

使用Chrome devtools做性能分析:
在这里插入图片描述

在这里插入图片描述
常用的性能指标有

  • First Paint(FP) 从开始加载到浏览器首次绘制像素到屏幕上的时间,即首次发生视觉变化的时间。
  • First Contentful Paint(FCP) 浏览器首次绘制来自DOM内容的时间,内容包括文本、图片等。
  • First Meaningful Paint(FMP) 主要内容绘制到屏幕的时间。这个一个更好的衡量用户感知加载体验的指标。主流的分析工具都已弃用 FMP 而使用 LCP
  • DomContentLoaded(DCL) 即DomContentLoaded触发时间,DOM全部解析并渲染完
  • Largest Contentful Paint(LCP) 可视区域中最大的内容元素呈现到屏幕上的时间。用以估算页面主要内容对用户可见的时间。
  • Load(L)window.onload 触发时间,页面内容(包括图片)全部加载完成

而当前场景主要是接口返回数据占用了很长的时间。

所以,可以用考虑从数据请求、用户体验等方面优化。

综上,得出结论:主要是加载速度慢。


解决方案:

对于加载慢,可以有以下解决方案:
1、优化服务器接口
2、使用CDN
3、拆包,异步加载

因此,最终解决方案是:
1、让后端对接口数据拆分,去掉冗余数据,sql查询加索引等;
2、前端把接口调用改为异步调用(之前是同步,同步的话UI线程会被挂起,接口数据返回后,才能交互),发出请求后,能继续执行交互效果,如选中列表效果、loading效果,提高用户体验感。
3、优化代码,降低时间复杂度,如双层for循环采用哈希表的方法,将O(n^2)降至为O(n)。


http://www.ppmy.cn/news/312071.html

相关文章

据说加入9E技术员家园,装机设首页。月赚几千

做IT行业这么久!技术员装机苦闷,加入9E技术员家园装机一个月可以额外赚个1000多块 我来告诉大家9E技术员家园好不好: 在做其他联盟的技术员请认真看看哟 1:超过10元即可申请领薪,全网装机实际收入最高。所有软件支持静默安装 2&…

Tableau 错误代码: 6EA18A9E,导入自定义地理时发生意外错误,无法完成操作

照教程学,在导入自定义定理编码时发现此问题。 无法完成操作 内部错误 - 发生意外错误,无法完成操作。 错误代码: 6EA18A9E tableau在7月30号修复了此问题 下载网址:https://www.tableau.com/zhcn/support/releases/desktop/2020.2.4#esdal…

关于9E+307

经常看到初学者会问,公式中出现的9E307是什么意思呀? 今天我就说说这个问题。 昨天的文章也说了,其实许多问题的解决方法就能在帮助文件中找到,这个问题也不例外。搜索“限制”,查看“Excel 规范与限制”一节&#x…

9E技术员家园注册码;a266

做IT行业这么久了!技术员装机苦闷!加入9E技术员家园装机一个月可以额外赚个1000多块挺高兴的 我来告诉大家9E技术员家园好不好: 在做其他联盟的技术员请认真看看哟 1:超过10元即可申请领薪,全网装机实际收入最高。所有软件支持…

vivos9e防抖功能设置教程

我们在使用手机进行拍照时。经常会因为手抖而无法拍出好照片。这时可以开启防抖助手来辅助我们。那vivos9e防抖功能怎么开你知道吗?不清楚也没关系快来看看换换为大家整理的详细教程吧。希望对你有所帮助! vivos9e防抖助手设置教程分享 1、打开手机上的…

小米cc9计算机在哪方面的应用,小米CC9e深度使用10天之后,说说最真实的感受

原标题:小米CC9e深度使用10天之后,说说最真实的感受 随着手机行业竞争的越来越激烈。国产手机厂商不得不想尽办法,来吸引用户的关注。细心的朋友会发现,最近这两年,千元机市场的竞争比高端市场更加激烈。毕竟千元机市场…

android+one机型,穿上马甲输出海外:小米 CC9e手机将作为Android One机型,以小米A3型号在海外发售...

前一阵子,小米正式发布了CC9系列。作为小米旗下的全新产品线,它面向的主要用户群体为女性和年轻人。最近,有消息称,它可能还会在海外发售。 近日,小米的海外推特账号上正式官宣了小米A系列产品,并且表示它是…

JNI DETECTED ERROR IN APPLICATION: input is not valid Modified UTF-8: illegal start byte 0x9e 解决方案

在vivo设备上 调用 jstring str env->NewStringUTF(charResult); 出现闪退问题报错:JNI DETECTED ERROR IN APPLICATION: input is not valid Modified UTF-8: illegal start byte 0x9e 解决方案: 不使用NewStringUTF 从网上找了一个const char…