码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【工作中遇到的性能优化问题】


    项目场景:

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


    问题描述

    问题一、加载左侧数据时,默认选中第一条数据,会去调用查表单明细的接口,然后渲染数据。有一定的卡顿,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)。

  • 相关阅读:
    【总结】maven 打包刷新下载依赖卡死
    分享金媒v10.3开源系统中CRM线下客户管理系统使用指南和小程序上架细分流程
    Kotlin 开发Android app(七)上:Kotlin函数fun
    代码随想录刷题记录 4 - 字符串
    java毕业设计花漾网在线商城(附源码、数据库)
    kubernetes CNI(Container Network Inferface)
    G1D15-fraud-APT-汇报-基础模型与LR相关内容总结-KG-cs224w colab1-ctf rce41-44
    Google 搜索老矣,尚能饭否?
    《发现的乐趣》作者费曼(读书笔记)
    HTML静态网页成品作业(HTML+CSS)——非遗昆曲介绍设计制作(1个页面)
  • 原文地址:https://blog.csdn.net/weixin_42936434/article/details/131029454
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号