分析 IE9 Acid3 分数低的真实原因

作者: 来源: 日期:2010-3-28

微软 IE9 的开发方向非常清晰,支持 HTML5,支持标准,在本周举行的 MIX10 上,IE 项目总管 Dean Hachamovitch 如是说。在 IE9 的开发上,微软开始注重真实世界的需求,他们对全球前 7000 个网站进行实时监控,分析他们使用的每一种 JavaScript 和 DOM API 并为之提供全面支持。

在这 7000 份用例的背后,有不少与 HTML5 有关,对此,微软并没有透露更细细节,但考虑到 HTML 视频和 SVG 动画的份量,显然它们是未来 HTML5 网站的核心。然而对 HTML5 的专注并不意味着微软会在诸如 SunSpider 和 Acid3 一类的测试上花大功夫,随着 IE9 的开发,他们的 Acid3 得分虽然会继续提高,但这不是 IE9 看重的东西。Acid3 是一种机械式测试,非系统化测试,你可以将浏览器的性能做得很好,但通不过测试,也可以各项指标做得平平却在 Acid3 上得满分,Acid3 测试虽然有用,但不是面面俱到,尤其是上百种 HTML5 功能并不在测试之列。

事实上,对标准的支持有很多层面,CSS 圆角似乎可以说明这个问题,IE9 预览版和 Webkit 都支持 CSS3 圆角,Firefox 的 Gecko 引擎也通过一个扩展支持圆角。圆角是 Web 开发者们梦寐以求的功能,然而,圆角功能在不同的引擎上表现并不一致:

下图是设计者希望看到的样子:

Acid Test

这是开发者不希望看到的样子:

Acid Test

上面那个不希望看到的样子就是一些支持 CSS3 圆角功能的浏览器的真实表现,这有两种可能,要么浏览器错了,要么标准不够严谨,然而,这样的问题,Acid3 是测试不出的,这种问题需要一种系统化的测试才能解决。

在设计这类测试的时候,可以发现一些标准中的问题,也可以发现浏览器实现中的错误,Acid3 无法测试出一个浏览器对 HTML5 的支持程度,甚至无法告诉你哪种 HTML5 功能浏览器不支持,这类问题需要一种更全面的测试才能解决。正因为这个原因,微软延续了他们在 IE8 中所作的工作。在 IE8,他们向 W3C 提交了大量 CSS2.1 测试,系统化测试是唯一可以保证满足现实需要的方法。因此,在 IE9 的开发中,微软设计了一种新的测试方法,他们已经将第一批测试提交 W3C,微软不想让 IE9 和其它浏览器拼分数。

尽管浏览器之间在某种性能上各有千秋,但他们之间的距离都没有 IE8 那么大,不管怎么说,所有浏览器都应该努力让相同的代码有相同的表现。

另外,SunSpider 的 JavaScript 分数也不是 IE9 的目标,SunSpider 测试能够多方面反应浏览器 JavaScript 引擎的性能,但就像真实的网页并非按 Acid3 测试的样子来设计一样,真实的 Web 应用也不是按 SunSpider 来写的,真实的 Web 程序要做很多优化,让网页迅速加载,同时让那些复杂的操作在后台快速进行,SunSpider 测试不了这些东西。SunSpider 不代表真实的世界,开发者们应该面向真实世界,而不是测试平台进行开发。

微软希望他们对 HTML5 的支持稳定而强健,这意味着 IE9 对 HTML5 的支持不会面面俱到,HTML5 目前还有很多变数,另外,有些 HTML5 功能虽然可靠,但并不在微软 7000 个用例之列,最终的 IE9 可能会和别的浏览器走不一样的路,IE9 在标准支持上如果再有差池,对微软将是一个很大的纠结,不过,IE9 目前的方向是正确的。

相关文章