以人为本的性能指标+ 查看更多
好像一直都有人在各种场合强调网站性能的重要性。但是,当我们提起网站性能,谈到让网站变快的时候,具体指的是什么呢?
鸽给你一分钟思考。。。。。。。。。。。。。。。。。
如果仔细思考,这个看起来很简单的问题,其实不像看起来那么好容易回答。目前大神们的回答是,性能是相对的(和爱因斯坦没有关系):
- 同一个网站对于张三来说可能很快(在具有强大设备的高速网络上),但是对于李四来说可能很慢(在具有低端设备的低速网络上)。
- 两个网站可能在相同的时间完成加载,但一个可能似乎加载速度更快(如果它渐进加载内容,而不是等到最后才显示内容)。
- 一个网站可能出现快速加载,然后很慢(或根本不)响应用户交互。
因此,在谈论性能的时候,必须准确,并根据可以定量衡量的客观标准来衡量绩效。这些标准被称为指标。但是,由于这些指标不一定能够提现真实的用户感受,意味着这些指标不一定是有用的。
定义指标
过去,专家们常用经典的onLoad
事件来监测性能。然而,尽管onLoad
是页面生命周期一个很重要的时刻也很经典,但这个时刻不一定与真正的用户体验相对应。
例如,服务器可以使用一个很小的页面进行响应,该页面可以立即“加载”。加载之后,将获取内容和显示页面上的真正内容推迟到负载
事件触发。虽然从技术上讲,这样的页面加载时间可能很快,但实际没有什么卵用。在过去的几年里,Google的Chrome团队的成员与W3C Web性能工作组-一直致力于标准化一套新的api和指标,更准确地从用户体验的角度去衡量一个网页的性能。鸽窃以为,Google团队很有可能已经将这些指标用来衡量一个网站用户体验的好坏并影响实际排名。
如何收集数据并测量
性能指标通常以两种方式之一来衡量:
- 在实验室:使用工具在一致的、可控的环境中模拟页面加载
- 在生产环境:在真实用户实际加载和与页面交互
但它们其实并不冲突,我们肯定希望页面性能在两者条件下都很快。
在实验室里
在开发新功能时,在实验室中测试性能是必不可少的。在特性在产品中发布之前,不可能在实际用户中测量它们的性能特征,所以在新特性发布之前在实验室中测试它们是防止低性能的最好方法。
在生产环境
另一方面,虽然在实验室中进行测试是性能的合理代理,但它并不一定反映所有用户在真实环境下对站点的体验。站点的性能可能会因为用户的访问设备和网络条件发生巨大的变化。它也可能因为用户是否(或如何)与页面进行实际交互而变化。此外,页面加载可能不是确定性的。例如,加载个性化内容或广告的站点可能会体验到用户与用户之间截然不同的性能特征。实验室测试无法捕捉到这些差异。真正了解站点对用户表现如何的唯一方法是在用户加载和交互时实际测量站点的性能。这种类型的测量通常被称为真实用户监控。
指标的类型
还有一些其他类型的指标与用户能够感知的性能有关。
- 感知加载速度: 页面加载并将其所有视觉元素呈现到屏幕的速度
- 加载响应: 为了让组件快速响应用户交互,页面加载和执行所需的JavaScript代码的速度有多快
- 运行时响应: 页面加载后,页面对用户交互的响应速度。
- 视觉稳定性: 页面上的元素是否以用户不期望的方式移动,并可能干扰他们的交互?
- 平滑度: 转换和动画是否以一致的帧率呈现,并从一种状态流到另一种状态?
有了以上所有类型的性能指标,没有任何一个指标足以捕获页面的所有性能特征。