W3C Web 性能:持续性能投资
W3C Web 性能工作组最近于 2012 年 11 月 8 日(周四)举办了 W3C 性能研讨会。此次会议的目标在于听取当前所遇到的性能挑战和最新性能观点的提案,以便该工作组能够认真考虑这些内容。有 45 名与会者参加了此次会议,他们来自 21 个不同的组织,包括大多数浏览器制造商(Microsoft、Google 和 Mozilla)、硬件组织(Intel、Qualcomm、Nokia 和 Motorola)、网络组织(Cisco、Akamai 和 F5)以及主要 Web 资产(GMail、Google Search、Bing、NetFlix、LinkedIn 和 Zynga 等)。有关此次研讨会的演示文稿和讨论的详细信息,请查看本报告。
实现对 Web 应用程序的性能特点的准确测量,并创建能够有效使用电源和 CPU 的应用程序对于 Web 性能至关重要。W3C Web 性能工作组在最近结束的其章程中规定的第二个时间段内不断努力实现这些目标。在不到两年的时间里,该工作组迅速实现了标准化,从而使现代支持 HTML5 的 Web 浏览器实现了以下 8 个接口:导航定时、资源定时、用户定时、性能时间线、页面可见性、基于脚本的动画的定时控制、高分辨率时间和有效脚本生成。Internet Explorer 10 是支持以上全部 8 个最新 API 的首款浏览器。
工作组此后不断致力于收集数据,以了解应在其章程中规定的第三个时间段内重点关注哪些方面的内容。除性能研讨会之外,工作组还邀请性能专家参加每周的电话会议,并就性能社区的最新观点展开了广泛调查。
基于在过去几个月中所收集的全部数据,Web 性能工作组决定在章程中规定的第三个时间段内将重点放在以下几个方面:
- 定时指标
工作组将不断改进定时接口、导航定时、资源定时、用户定时和性能时间线。例如,我们将考虑在定时接口中提供 Web workers 支持,包括资源定时中的视频字节范围的相关信息。 - 有效脚本生成
工作组将不断改进有效使用 CPU 和电源的 API,例如有效脚本生成规范中所定义的 setImmediate API。 - 预呈现
工作组将标准化预呈现功能,该功能在浏览器高度确信用户将访问某个 URL 时,几乎会“即时”显示导航。 该功能的工作原理是浏览器将在看到“预呈现”链接类型或高度确信用户将访问此链接时,主动导航至隐藏选项卡中 Web 页面。当用户访问该链接时,浏览器将使隐藏的选项卡变得可见,从而为用户提供即时导航的体验。 - 资源优先级
当今的浏览器均按优先级顺序下载资源,这是提高页面加载速度的最有效方法。但是,开发人员可能会希望将一些资源的优先级设定为高于其他资源。例如,加载网页中靠上方的图像的优先级可能会高于网页中靠下方的图像。尽管如此,开发人员可为浏览器提供一些下载优先级提示,例如在标记中使用“defer”和“async”属性,这些概念不包括大多数资源。为了帮助浏览器设定下载资源的优先级,工作组正在扩展章程以包含互操作方法,从而使开发人员能够为浏览器提供资源下载优先级提示。 - 诊断接口
开发人员对如何使他们的 Web 应用程序更快且更不易于出错兴趣十足。工作组正在扩展章程以包含互操作方法,从而使开发人员能够获得关于他们的 Web 应用程序的浏览器诊断信息。例如,开发人员可以使用这些接口来了解泄露内存的位置,或者用户在他们的 Web 应用程序中遇到了哪些错误。 - 信标
当今,分析脚本会通过循环运行的方式阻止当前页面上载,以便确认分析数据已发送至 Web 服务器。该行为将延迟到下一个页面的导航,从而导致用户感觉性能低下。为了帮助开发人员避免这种模式,工作组正扩展其章程以包含互操作方法,从而使开发人员能够将数据从浏览器异步传输至 Web 服务器,同时浏览器可以确保数据最终会被发送。 - 显示性能
开发人员对了解其游戏和动画的性能非常感兴趣。
工作组正在扩展章程以包含互操作方法,从而使开发人员能够了解显示类型的信息的帧速率和吞吐量。
该工作组是彰显新想法如何迅速转变为可互操作的标准的典型示例,开发人员能够在现代支持 HTML5 的浏览器中充分依赖这一标准。我们希望与参加工作组的行业和社区领导者开展了通力合作,不断快速推进互操作标准,并惠及开发人员和每一位 Web 用户。
Internet Explorer 项目经理 Jatinder Mann