Share via


Web 性能 API 迅速成为 W3C 推荐

W3C Web Performance工作组最近公布了三种规范作为 W3C 推荐规范,已经获得所有主要浏览器供应商的完全实施,极大地提高了开发者精确测量 Web 应用程序性能的能力,并且令 Web 速度更快。过去的三年时间里,包括像 Microsoft、Google、Mozilla、Intel、Facebook 和其他一直致力Navigation TimingHigh Resolution TimePage Visibility标准化的公司都与该工作组进行过接触和交流。对这些推荐的迅速采用证明了当业界和社区通过 W3C 进行协作时所可能产生的巨大潜力。

要令 Web 速度更快,开发者需要具有对 Web 应用程序的性能特点进行准确测量的能力,还需要具有有效使用基础硬件改进应用程序性能的能力。要解决这些问题,Web 性能工作组一共着手处理过 15 个不同的旨在解决这些问题的规范。下表列出了工作组目前正在编写的所有规范的成熟度。

规范 编者草稿 首次公开工作草稿 上次通话 候选推荐 建议推荐 推荐
导航定时 2010 年 9 月 2010 年 10 月 2011 年 1 月 2011 年 3 月 2012 年 7 月 2012 年 12 月
资源定时 2010 年 9 月 2011 年 5 月 2011 年 8 月 2012 年 5 月
用户定时 2010 年 10 月 2011 年 8 月 2011 年 9 月 2012 年 7 月
性能时间线 2011 年 7 月 2011 年 8 月 2011 年 9 月 2012 年 7 月
高分辨率时间 2012 年 2 月 2012 年 3 月 2012 年 3 月 2012 年 5 月 2012 年 10 月 2012 年 12 月
页面可见性 2011 年 4 月 2011 年 6 月 2011 年 7 月 2012 年 7 月 2013 年 2 月 2013 年 5 月
显示绘图通知 2011 年 5 月 2011 年 6 月 2012 年 2 月
导航定时 L2 (新增) 2013 年 1 月 2013 年 1 月
有效脚本生成 2011 年 6 月
高分辨率时间 L2 (新增) 2013 年 4 月
信标(新增) 2013 年 3 月
资源优先级(新增) 2013 年 4 月
导航错误记录(新增) 2013 年 4 月
资源错误记录(新增) 2013 年 4 月
预呈现(新增)

Navigation TimingResource TimingUser TimingPerformance Timeline规范可以帮助开发者精确地测量文档的导航时间,在页面上获取资源的情况,以及开发者脚本执行情况。在这些 API 之前,此数据不是很容易可获得的。导航定时已经作为 W3C 推荐公布,所有主要的浏览器供应商都对其提供支持。其他三个接口当前正处于候选推荐阶段,正在等待浏览器供应商的两项完全实施。IE10 是当前实施所有这三个接口的唯一的浏览器,不过,其他供应商也正在着手实施。

为了确保这些性能指标都以尽可能最准确的方法进行测量,High Resolution Time规范允许开发者以亚毫米级的精确度来测量操作。该接口不仅有利于对性能指标进行精确测量,而且也有利于进行帧速率计算和动画或音频提示的同步。该接口已经作为 W3C 推荐发布,所有主要浏览器供应商均已实施该规范中 performance.now() 方法。

Page Visibility允许以编程方式决定页面的当前的可见性状态。开发者可以使用这些数据来决定如何更好地利用 CPU 和电源。例如当页面位于背景标签中时,减少操作活动的数量。此规范已经作为 W3C 推荐公布,所有主要的浏览器供应商均实施了该规范。

Timing Control for Script-Based AnimationsEfficient Script Yielding规范帮助开发者编写能更有效地使用 CPU 和电源的 Web 应用程序。在基于脚本的动画的定时控制规范中所包含的 requestAnimationFrame API 允许创建更高效的 JavaScript 动画。所有浏览器供应商对该接口均提供完全支持,工作组正在努力将此规范公布为候选推荐。最后,在“有效脚本生成”规范中所包含的 setImmediate API 使开发者能够有效地对用户代理生成控制流并接收即时回调,并有效地利用 CPU。IE10 是第一个实施此接口的浏览器。

这一年,工作组也已经开始寻求新的创意和想法,这些创意和想法的编者草案正在由工作组开展讨论。Beacon API 旨在帮助脚本异步传输数据到 Web 服务器,而不会阻止卸载事件,这可能会对下次导航感知性能产生负面影响。Resource Priorities API 定义了一种方式,使得 Web 开发者能够为浏览器提供资源下载优先级提示,从而帮助改进页面加载时间。作为定时规范的必然结果,Navigation Error LoggingResource Error Logging规范帮助开发者理解他们的应用程序的错误和可用性。Navigation Timing Level L2 规范为导航定时增加了高分辨率时间和性能时间线支持,High Resolution Time L2 规范增加了 Web Worker 支持。这些只是工作组当前正准备制定的一些草案,关于预呈现和其他诊断范围的更多规范正在酝酿之中。

W3C Web 性能工作组是彰显新想法如何迅速转变为可互操作的标准的典型示例,开发者能够在现代支持 HTML5 的浏览器中充分依赖这一标准。我们希望与参加工作组的行业和社区领导者开展了通力合作,不断快速推进互操作标准,帮助开发者打造速度更快的 Web。

非常感谢!
Jatinder Mann
Internet Explorer 项目经理