前端性能优化-开篇

前端性能优化问题是每个前端需要掌握的技术。这篇文章从渲染优化、代码优化、资源优化、构建优化、传输加载优化、更多流行优化技术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;

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,376评论 6 491
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,126评论 2 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,966评论 0 347
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,432评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,519评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,792评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,933评论 3 406
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,701评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,143评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,488评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,626评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,292评论 4 329
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,896评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,742评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,977评论 1 265
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,324评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,494评论 2 348

推荐阅读更多精彩内容

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