前端性能优化-开篇

前端性能优化问题是每个前端需要掌握的技术。这篇文章从渲染优化、代码优化、资源优化、构建优化、传输加载优化、更多流行优化技术6大角度讲解前端性能优化。再讲之前,我们先了解一下性能优化指标和一些测量工具。

一、性能优化的指标和工具

1.1性能指标和优化目标

RAIL测量模型
R -> response 响应:处理事件应在50ms以内完成。Click事件等
A -> animation 动画:每10ms产生一帧。
I -> Idle 空闲:尽可能添加空闲时间。
L-> load 加载:5s内完成内容加载并可以交互。

1.2性能测量工具

1.2.1WebPageTest多测试地点、全面性能报告

网址 https://webpagetest.org/


测量结果(不同的浏览器测试结果项可能不同)


测量结果中有首次和第二次访问各项数据,这里介绍我们比较关心的几项
First Byte 发出的第一个请求得到响应的时间,反应了后台处理能力和网络回路的情况。
Start Render 首屏渲染时间
First Contentful Paint 首次有内容页面渲染时间
Speed Index 速度指数 4s合格
Total Blocking Time 页面被阻塞时间综合,不可交互的时间 绿色表示达标

第一轮测量结果细节



瀑布图



测量结果各项数据很多,有兴趣的同事,可以深入的学习。
1.2.2 Lighthouse网站整体质量评估。Chrome开源的一个项目

npm install lighthouse -g 安装
lighthouse https://www.taobao.com/ 使用 自动打开浏览器默认是移动端测量。测试完成后,会生成测试报告html文件。

打开测试报告



Performance 性能
Accessibility 可访问性
Best Practices 网络实践
SEO 网站优化
Progressive Web App 渐进式应用

我们只关注 Performance 测量结果
First Contentful Paint 第一次有意义内容渲染时间
Speed Index 速度指数
Largest Contentful Paint 最大资源渲染时间
Time to Interactive 可交互时间



Opportunities 优化建议,罗列出问题,告诉我们怎么去处理,会优化多少时间
Diagnostics 诊断程序性能一些问题。

1.2.3 Chrome DevTools开发调试、性能评测。

Chrome DevTools Newwork 网络加载分析



Chrome DevTools Performance 性能分析



Timings 页面加载时间节点

Main 主线程
Performance 各项性能分析,可以让我们分析出,页面各个节点时间,及主线程任务状态,性能问题。
分析项很多,这里不做太细节的分析,感兴趣的同事,可以深入学习。

1.3 常用的性能测量APIs

performance 对象
performance.timing 对象包含很多时间时间节点,可以计算出任务耗时



重定向耗时 = redirectEnd - redirectStart;
DNS查询耗时 = domainLookupEnd - domainLookupStart;
TCP链接耗时 = connectEnd - connectStart;
HTTP请求耗时 = responseEnd - responseStart;
解析dom树耗时 = domComplete - domInteractive;
白屏时间 = responseStart - navigationStart;
DOMready时间 = domContentLoadedEventEnd - navigationStart;
onload时间 = loadEventEnd - navigationStart;

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • [TOC] chrome性能优化检测工具 1.谷歌浏览器工具资源管理工具network查看 识别network单个...
    时子释阅读 1,413评论 0 0
  • 性能优化调研系列文章 《前端性能优化(上)》 《前端性能优化(中)》 《前端性能优化(下)》 为什么要进行前端性能...
    9吧和9说9话阅读 1,360评论 0 0
  • web 的性能一定程度上影响了用户留存率,Google DoubleClick研究表明:如果一个移动端页面加载时长...
    nimw阅读 1,457评论 0 11
  • 也许你有听过一个问题,你这款 web 应用性能怎么样呀?你会回答什么呢?是否会优于海量 web 应用市场呢?本文就...
    最x程序猿阅读 791评论 0 0
  • 在前端开发中,自己开发的app或者web page性能的好坏,一直是让前端开发人员很在意的话题。因为影响用户浏览网...
    佛系少女_Xx阅读 4,985评论 0 3