前端性能优化实践之工具篇(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



相关文章
|
4月前
|
运维 前端开发 JavaScript
前端埋点校验工具:数据驱动的最后一道防线
数据埋点是企业决策的关键基础,但常面临覆盖率低、数据不准和故障难排查三大难题。本文深入剖析了这些问题的成因与影响,并提出“三维校验矩阵”解决方案:提升覆盖率至99.8%、降低错误率至0.3%、提速故障定位5倍。同时对比Split.io、Tealium、Sentry、板栗看板等工具优劣,为企业选型提供参考。迈向高质量数据治理,从精准埋点开始。
|
2月前
|
存储 前端开发 安全
实现“永久登录”:针对蜻蜓Q系统的用户体验优化方案(前端uni-app+后端Laravel详解)-优雅草卓伊凡
实现“永久登录”:针对蜻蜓Q系统的用户体验优化方案(前端uni-app+后端Laravel详解)-优雅草卓伊凡
197 5
|
5月前
|
前端开发 JavaScript 索引
前端性能优化:虚拟滚动技术原理与实战
前端性能优化:虚拟滚动技术原理与实战
769 80
|
5月前
|
缓存 监控 前端开发
前端性能优化:现代框架的关键策略
前端性能优化:现代框架的关键策略
315 74
|
5月前
|
缓存 前端开发 JavaScript
前端性能优化:打造流畅的用户体验
前端性能优化:打造流畅的用户体验
|
9月前
|
缓存 前端开发 UED
如何优化前端性能以提高加载速度
前端性能优化对提升网站加载速度至关重要,直接影响用户体验、SEO排名和转化率。本文介绍了优化前端加载速度的关键技巧,包括最小化HTTP请求、使用CDN、优化图片、利用浏览器缓存、压缩文件和实现懒加载。通过这些方法,可以显著减少页面加载时间,提高网站的整体性能和用户满意度。
|
6月前
|
存储 消息中间件 前端开发
PHP后端与uni-app前端协同的校园圈子系统:校园社交场景的跨端开发实践
校园圈子系统校园论坛小程序采用uni-app前端框架,支持多端运行,结合PHP后端(如ThinkPHP/Laravel),实现用户认证、社交关系管理、动态发布与实时聊天功能。前端通过组件化开发和uni.request与后端交互,后端提供RESTful API处理业务逻辑并存储数据于MySQL。同时引入Redis缓存热点数据,RabbitMQ处理异步任务,优化系统性能。核心功能包括JWT身份验证、好友系统、WebSocket实时聊天及活动管理,确保高效稳定的用户体验。
422 4
PHP后端与uni-app前端协同的校园圈子系统:校园社交场景的跨端开发实践
|
8月前
|
JSON 人工智能 前端开发
前端开发中使用whistle代理工具
Whistle是一款强大的代理工具,相比Charles、Fiddler更轻量且功能丰富。它适用于前端开发中的多种场景,如接口数据Mock、接口代理、静态资源代理等。通过简单的规则配置,可将接口指向本地JSON文件,解决跨域问题,或代理静态资源以满足特定域名访问需求。此外,Whistle还支持本地端口间转发与移动端请求抓包,搭配SwitchyOmega插件使用效果更佳。需注意,使用前请确保已安装Node环境并参考官方文档完成基础配置。
|
8月前
|
人工智能 JavaScript 前端开发
Vue 性能革命:揭秘前端优化的终极技巧;Vue优化技巧,解决Vue项目卡顿问题
Vue在处理少量数据和有限dom的情况下技术已经非常成熟了,但现在随着AI时代的到来,海量数据场景会越来越多,Vue优化技巧也是必备技能。 博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
存储 人工智能 前端开发
前端大模型应用笔记(三):Vue3+Antdv+transformers+本地模型实现浏览器端侧增强搜索
本文介绍了一个纯前端实现的增强列表搜索应用,通过使用Transformer模型,实现了更智能的搜索功能,如使用“番茄”可以搜索到“西红柿”。项目基于Vue3和Ant Design Vue,使用了Xenova的bge-base-zh-v1.5模型。文章详细介绍了从环境搭建、数据准备到具体实现的全过程,并展示了实际效果和待改进点。
1024 14

热门文章

最新文章

  • 1
    前端如何存储数据:Cookie、LocalStorage 与 SessionStorage 全面解析
  • 2
    前端工程化演进之路:从手工作坊到AI驱动的智能化开发
  • 3
    Vue 3 + TypeScript 现代前端开发最佳实践(2025版指南)
  • 4
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(五):背景属性;float浮动和position定位;详细分析相对、绝对、固定三种定位方式;使用浮动并清除浮动副作用
  • 5
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(六):全方面分析css的Flex布局,从纵、横两个坐标开始进行居中、两端等元素分布模式;刨析元素间隔、排序模式等
  • 6
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(一):CSS发展史;CSS样式表的引入;CSS选择器使用,附带案例介绍
  • 7
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(八):学习transition过渡属性;本文学习property模拟、duration过渡时间指定、delay时间延迟 等多个参数
  • 8
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(九):强势分析Animation动画各类参数;从播放时间、播放方式、播放次数、播放方向、播放状态等多个方面,完全了解CSS3 Animation
  • 9
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(四):元素盒子模型;详细分析边框属性、盒子外边距
  • 10
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(二):CSS伪类:UI伪类、结构化伪类;通过伪类获得子元素的第n个元素;创建一个伪元素展示在页面中;获得最后一个元素;处理聚焦元素的样式