1. 背景

当页面出现性能问题,如加载慢、页面卡顿等现象时,大多是用户主观上的感受。而要真正客观的去评测性能和定位问题原因,通常需要专业的前端同学通过 DevTools 中的 Performance 等工具来查看(如图 1 所示),这无疑增加了客观看问题的成本。

图 1

当然,目前也是有一些不错的工具来评测分析页面,但这些工具都存在一些问题。下面主要说一下 PageSpeed Insights、Lighthouse 。

1.1. PageSpeed Insights(Lighthouse)

PageSpeed Insights 和 Lighthouse 两个比较类似,就一起讲了。
这两个工具是比较强大的,对页面的分析也比较到位,但存在以下问题:

  • 被动型。需要用户去主动执行工具才能看到分析结果。
  • 无法保留现场。使用工具都需要重载页面才能对页面进行评测,所以当页面有一些偶发性的问题时,现场丢失,增加排错成本。
  • 工具都是 online 版本的。内网产品无法进行评测。
  • 插件版需要在 Devtools 中使用。增加使用成本。

所以能不能有一个工具,可以主动性的去获取页面信息,并用几乎为 0 的成本,可以让用户看到客观的页面性能指标及完备的现场数据,可以用来追溯问题及提供解决方案。

2. 解决问题

经过讨论,分了 5 个维度来判断页面的性能,如下:

  • 页面加载时间:暂时定位为 load 的时间。
  • 加载资源数量:在 load 过程中加载的所有资源信息。
  • 大资源数量:超过 1MB 的资源。
  • 慢资源数量:超过 500ms 的资源。
  • 平均帧率:加载过程中的帧率。

通过这几个指标,大致可以说明页面的性能和问题出现的原因。

3. 实现

目前先使用 Chrome 插件的方式进行了实现,使用 Chrome 插件主要有如下优势:

  • ContentScript 内容注入。可以在不改造网站的情况下,对分析脚本进行注入。也可实现一些动态通知等效果。
  • Action Badge醒目提醒。可以通过将性能指标写在 Badge 中实现醒目的提醒效果。
  • Popup 详细信息。可以将详细的分析报告放在 Popup 中,方便用户查看详情。
  • Option 指标配置。可以将需要的指标及指标的阈值进行自定义配置。
  • 代码复用性。插件中的采集、分析代码完全可以被复用。

3.1. 实现流程

实现流程主要为:收集数据 ➔ 分析数据 ➔ 生成报告。插件流程如下图 2 所示:

图 2

4. 插件

PageStatus
应用商店:插件地址

页面加载完成后,插件会自动将页面的加载时间显示在浏览器的工具条中,背景色根据加载时间的快慢 使用“红”“黄”“绿”来标注,实时反映页面健康状况,如图 3 所示:

图 3

4.1. 功能

下面对详细的功能进行介绍。

4.1.1. 页面加载时间

页面加载时间 表示的是页面触发 load 的时间,会同步到浏览器的工具条中,点击插件图标会显示更详细的页面加载信息,如图 4 所示:

图 4

4.1.2. 加载资源数量

页面加载过程中,所有资源的请求都会在这一项中体现出来。这里会按照请求的时间次序进行排列,超过 1S 的资源进行加红标注,直接从缓存读取的会用浅颜色和删除线标注,如图 5 所示:

图 5

4.1.3. 大资源数量

页面加载过程中,默认超过 1MB 的资源会被定义为大资源。如图 6 所示:

图 6

4.1.4. 慢资源数量

页面加载过程中,默认超过 500ms 的资源会被定义为慢资源。如图 7 所示:

图 7

4.1.5. 平均帧率

会计算页面加载过过程中的平均帧率,如图 8 所示:

图 8

4.1.6. 页面消息通知

默认开启,对超标的项目进行页面内通知的功能,如图 9 所示:

图 9

4.1.7. 配置

插件中所有参数都是可以进行配置的,可以点击扩展图标右下角的小齿轮按钮进入配置页面,也可以在扩展图标右键选择选项进入,如图 10 所示:

图 10


Github Repo

主动型页面性能利器:Page Status相关推荐

  1. 快速提升页面性能的必备利器

    从 PC 互联网到移动互联网,越来越多的人在互联网上追剧,看资讯,刷视频,玩游戏等等,与之对应的就是各类互联网应用的用户体验要求越来越高. 其中典型的一个例子就是互联网的 "8秒原则&quo ...

  2. link标签的几个用法,帮助提高页面性能

    写在前面 本文首发于公众号:符合预期的CoyPan HTML 中****元素规定了外部资源与当前文档的关系.最常见的用法,是用来链接一个外部的样式表,比如: <link href="m ...

  3. [WebKit]浏览器的加载与页面性能优化

    非常棒.非常系统的一份资料,值得阅读! 原文来自百度泛用户体验. 作者:nwind 本文将探讨浏览器渲染的loading过程,主要有2个目的: 了解浏览器在loading过程中的实现细节,具体都做了什 ...

  4. 干货 | 数据思维在携程商旅页面性能优化中的一次实践

    作者简介 Graviton,携程研发总监,专注数据思维驱动团队效能与技术发展. 本文旨在通过一个实际的例子,说明如何通过数据思维来解决研发工作中的一些棘手问题.通过此文,希望能够清楚地阐述我对下面几个 ...

  5. Web前端教程分享:页面性能优化办法有哪些?

    引子 互联网有一项著名的8秒原则.用户在访问Web网页时,如果时间超过8秒就会感到不耐烦,如果加载需要太长时间,他们就会放弃访问.大部分用户希望网页能在2秒之内就完成加载.事实上,加载时间每多1秒,你 ...

  6. 页面性能检测插件(Chrome)

    今天尝试装了一下YSlow插件,尝试了几次没有成功,偶然间发现Chrome里面有一个功能类似的整合插件 All-In-One PageSpeed Test Test your page perform ...

  7. 页面性能优化办法有哪些? 1

    引子 互联网有一项著名的8秒原则.用户在访问Web网页时,如果时间超过8秒就会感到不耐烦,如果加载需要太长时间,他们就会放弃访问.大部分用户希望网页能在2秒之内就完成加载.事实上,加载时间每多1秒,你 ...

  8. 转:浏览器加载页面的过程与页面性能优化

    本文是转帖,原文:http://www.baiduux.com/blog/2011/02/15/browser-loading/ 发布日期:2011年2月15日 作者:nwind 类别:HTML/CS ...

  9. 页面性能优化的五种办法

    前言 大部分用户希望网页能在 2 秒之内就完成加载.事实上,加载时间每多 1 秒,你就会流失 7% 的用户.如果加载需要太长时间,他们就会放弃访问. 以下是我总结性能优化常见的办法: 一.资源压缩与合 ...

最新文章

  1. 2016年3月全球操作系统版本份额:Win10仅次win7
  2. 校园网安全问题分析与对策
  3. 计算机视觉与深度学习 | 检测和测量图像中的圆形目标(数钢筋)
  4. 每日一笑 | 如果把大脑看成CPU的话...
  5. RHEL7 修改SSH默认端口
  6. 开源云原生平台 Apache Kafka暴露多家大企业的敏感数据
  7. html 元素换行_超文本标记语言的段落与换行显示!
  8. 多线程 之 生产者与消费者
  9. 小米IPO前员工写文爆料内部真实见闻—期权 部分裁员 离职大公开!
  10. SPSS 25软件安装教程
  11. 云计算、分布式计算、并行计算、网格计算、集群
  12. 有趣的java编程题_java编程题 有趣的数
  13. 分步骤详细解说:H5性能优化方案
  14. oracle 11g rac 恢复,11G RAC 异机恢复至单实例测试
  15. 详解UML类图(口诀记忆箭头方向)
  16. NUC972 使用不同的FLASH开机的ENV文件写法 NAND...
  17. 34 个今年11月最受欢迎的 JavaScript 库
  18. Victoria(硬盘检测工具)v4.46F绿色版
  19. 【Android 教程系列第 13 篇】在小米手机上使用安卓投屏软件 QtScrcpy ,为什么点击屏幕没有反应
  20. python turtle 绘图小猪佩奇_Python turtle画小猪佩奇

热门文章

  1. [Leetcode] Majority Element 众数
  2. 2013年3月16日星期六
  3. 让您变的更智慧 秘笈145条(上)
  4. HIPS 自定义框架
  5. 解开 Windows 下的临界区中的代码死锁(转)
  6. azure多功能成像好用吗_Azure持久功能简介:模式和最佳实践
  7. chrome麦克风权限_如何在Chrome扩展程序中处理麦克风输入权限和语音识别
  8. 如何让代码更易于维护_如何轻松地使您的网站更易于访问
  9. 开源贡献 计算_我的第一个Hacktoberfest-第一次为开源做贡献的经验
  10. 使用Kakapo.js进行动态模拟