前端性能优化实践之工具篇(1)

简介: 前端性能优化实践之工具篇(1)

1、开篇

  • 解决问题 你是在绕过问题,还是找到本质 解决了本质问题

网络异常,图片无法展示
|

网络异常,图片无法展示
|

2、性能指标和 优化目标

  • 找个实际的例子说明这个事情 , 打开淘宝
1、按住 刷新按钮 选择 清缓存强制刷新 
 2、然后在 network 看 资源情况 
 3、重点关注 waterfall 瀑布流 
 4、并且 放在一个 资源的 waterfall 上 就可 查看 它的详细内容了 
 5、
复制代码
  • 基础部分

网络异常,图片无法展示
|

  • waterfall 细节  TTFB  Time to first byte

网络异常,图片无法展示
|

  • 结果保存

网络异常,图片无法展示
|

  • lighthouse
    网络异常,图片无法展示
    |

  • 比较重要的宏观指标
1、页面响应非常 迅速,包括交互菜单 搜索 和 搜索关联的东西 
2、页面流畅 不卡顿 1s 60fps
3、请求需要在 1s 内返回回来 ,不行就压缩,压缩还是不行,加 loading 过程,就不会显得生硬
复制代码
  • 如何查看页面的 fps
1、mac command shift + p  选择 rendering 
 2、选择 Frame Rendering Stats
复制代码

网络异常,图片无法展示
|

  • 再次强调  请求比较慢,则 添加 loading 效果

3、RAIL 性能 测量模型 google 给出

  • 基于用户,让用户有很好的体验

网络异常,图片无法展示
|

网络异常,图片无法展示
|

  • 指标列出来

网络异常,图片无法展示
|

网络异常,图片无法展示
|

网络异常,图片无法展示
|

  • 性能测量 工具

网络异常,图片无法展示
|

4、WebPageTest 评估网站性能

1、打开站点 https://www.webpagetest.org/
2、简单配置一下 
3、start test 
4、拿到结果 需要注意 几个重要的指标 
复制代码
  • 简单配置一下

网络异常,图片无法展示
|

  • 输入 淘宝地址开始测试

网络异常,图片无法展示
|

  • 拿到结果 需要 注意 下面几个 事情

网络异常,图片无法展示
|

网络异常,图片无法展示
|

  • TBT

网络异常,图片无法展示
|

  • 关于 瀑布流 部分

网络异常,图片无法展示
|

网络异常,图片无法展示
|

  • LCP

网络异常,图片无法展示
|

  • 本地起 ?暂时不需要

5、Lighthouse 评估网站性能

1、使用 在线版本 貌似更加准确 https://pagespeed.web.dev/?utm_source=psi&utm_medium=redirect
2、关心主要的指标 
3、给出的建议 是有效的 需要结合实际去 尝试一下 
复制代码
  • 指标

网络异常,图片无法展示
|

  • 这些建议 可以去更改

网络异常,图片无法展示
|

  • 中文展示 有点瓜皮。。。
  • 还有一个重要的事情,如何将一些请求 block 住 不让发送

网络异常,图片无法展示
|

网络异常,图片无法展示
|

6、使用 Chrome DevTools(最常用工具)  评估网站性能

1、先拿到 测试的项目 
2、npm i 安装依赖 然后启动项目 先看 network 部分 
3、再看 performance 
4、
复制代码
  • network 部分

网络异常,图片无法展示
|

  • 压缩之后

网络异常,图片无法展示
|

网络异常,图片无法展示
|

网络异常,图片无法展示
|

  • performance 鼠标按住 就可移动

网络异常,图片无法展示
|

  • 然后 在 domContentLoaded 前面一般 最下面 就是自己代码 部分 上面是框架部分

网络异常,图片无法展示
|

  • 检查代码 发现此处有 延迟 删掉就行  注意 node 服务 需要重启

网络异常,图片无法展示
|

  • esc 妙用
    网络异常,图片无法展示
    |

7、常用的性能测量 APIs

  • 本节主要是几个 比较实用的例子说明,当然只是一个引子,更多的内容,需要阅读文档

1、想知道用户什么时候才能进行页面交互如何拿到 TTI  并且可以发送给后端 进行处理

网络异常,图片无法展示
|

  • 怎么实现这个 问题

网络异常,图片无法展示
|

网络异常,图片无法展示
|

  • 更多计算 性能相关的公式 在这里 doc 文件夹下 放在此处 方便粘贴
DNS 解析耗时: domainLookupEnd - domainLookupStart
TCP 连接耗时: connectEnd - connectStart
SSL 安全连接耗时: connectEnd - secureConnectionStart
网络请求耗时 (TTFB): responseStart - requestStart
数据传输耗时: responseEnd - responseStart
DOM 解析耗时: domInteractive - responseEnd
资源加载耗时: loadEventStart - domContentLoadedEventEnd
First Byte时间: responseStart - domainLookupStart
白屏时间: responseEnd - fetchStart
首次可交互时间: domInteractive - fetchStart
DOM Ready 时间: domContentLoadEventEnd - fetchStart
页面完全加载时间: loadEventStart - fetchStart
http 头部大小: transferSize - encodedBodySize
重定向次数:performance.navigation.redirectCount
重定向耗时: redirectEnd - redirectStart
复制代码

2、如何将 任务中的长任务 找到 并且 取出来 ?

网络异常,图片无法展示
|

  • 在项目中设置 了 一个 1.5s 的任务

网络异常,图片无法展示
|

  • 页面打印结果

网络异常,图片无法展示
|

3、如何检测 用户是否还停留在这个页面上 ? 如何监听,感觉非常有用  

  • 如果 切出去了,就不用继续加载东西,等回来之后再加载

网络异常,图片无法展示
|

  • 然后 当用户 切出去时 再回来 发现 打印了

网络异常,图片无法展示
|

  • 然后 就可以 针对 切出去时候 页面处理

4、如何拿到 用户当前的网络状态 ? 这样的话可以在不同网络下处理,弱网则给小的图片,网络状态很好,则推流

网络异常,图片无法展示
|

  • 最重要的是 connection.effectiveType



相关文章
|
26天前
|
缓存 前端开发 JavaScript
利用代码分割优化前端性能:策略与实践
在现代Web开发中,代码分割是提升页面加载性能的有效手段。本文介绍代码分割的概念、重要性及其实现策略,包括动态导入、路由分割等方法,并探讨在React、Vue、Angular等前端框架中的具体应用。
|
8天前
|
编解码 前端开发 开发者
探索无界:前端开发中的响应式设计深度实践与思考###
本文将带你领略响应式设计的精髓,一种超越传统页面布局限制的设计策略,它要求开发者以灵活多变的思维,打造能够无缝适应各种设备与屏幕尺寸的Web体验。通过深入浅出的讲解、实际案例分析以及技术实现细节的探讨,本文目的是激发读者对于响应式设计深层次的理解与兴趣,鼓励在实际应用中不断创新与优化。 ###
45 10
|
22天前
|
前端开发 安全 UED
2024年前端性能优化新策略
2024年前端性能优化策略涵盖代码分割与环境变量管理。代码分割通过动态导入和按需加载CSS减少初始加载时间;环境变量管理则确保敏感信息安全,简化多环境配置。结合最新工具和技术,可大幅提升Web应用性能与用户体验。
|
16天前
|
缓存 监控 前端开发
探索前端性能优化:关键策略与代码实例
本文深入探讨前端性能优化的关键策略,结合实际代码示例,帮助开发者提升网页加载速度和用户体验,涵盖资源压缩、懒加载、缓存机制等技术。
|
25天前
|
前端开发 数据处理 Android开发
Flutter前端开发中的调试技巧与工具使用方法,涵盖调试的重要性、基本技巧如打印日志与断点调试、常用调试工具如Android Studio/VS Code调试器和Flutter Inspector的介绍
本文深入探讨了Flutter前端开发中的调试技巧与工具使用方法,涵盖调试的重要性、基本技巧如打印日志与断点调试、常用调试工具如Android Studio/VS Code调试器和Flutter Inspector的介绍,以及具体操作步骤、常见问题解决、高级调试技巧、团队协作中的调试应用和未来发展趋势,旨在帮助开发者提高调试效率,提升应用质量。
44 8
|
19天前
|
搜索推荐 前端开发 定位技术
前端开发人员SEO优化技术方案
不同的搜索引擎提供了服务后台常见功能来优化网站搜索
43 2
|
22天前
|
编解码 前端开发 开发者
前端开发中的响应式设计实践
前端开发中的响应式设计实践
|
24天前
|
数据采集 缓存 监控
如何优化前端框架的数据驱动方式以提高性能?
综上所述,通过多种手段的综合运用,可以有效地优化前端框架的数据驱动方式,提高应用的性能,为用户带来更好的体验。同时,随着技术的不断发展和进步,我们需要不断探索和创新,以找到更适合的优化方法和策略。
|
19天前
|
编解码 前端开发 UED
探索无界:前端开发中的响应式设计哲学与实践####
本文不拘泥于传统摘要的框架,而是以一种对话的方式,引领读者踏入响应式设计的奇妙世界。想象一下,互联网如同一片浩瀚的海洋,而网页则是航行其中的船只。在这片不断变化的海域中,如何让我们的“船只”既稳固又灵活地适应各种屏幕尺寸和设备?这正是响应式设计的魅力所在。通过深入浅出的探讨,我们将一同揭开它背后的哲学思想与实战技巧,让你的网页在任何设备上都能展现出最佳姿态。 ####
19 0
|
22天前
|
前端开发 JavaScript API
现代前端框架中的响应式编程实践
现代前端框架中的响应式编程实践
32 0