微软新浏览器引擎的诞生

冯涛

在今年初的Windows 10发布会上,微软正式对其最新产品Spartan浏览器做了介绍--这是一款全新开发并且脱离IE家族的浏览器,它将工作在所有Windows 10平台上。早前已有不少人曝光了这款新产品的概况,但都局限于基本信息,官方也尚未公布各项细节而且目前也暂未向公众开发试用,所以我们对它的了解还比较有限。 近日,微软带来了一则有关新浏览器Spartan的消息,讲述了他们为什么要开发这样一款新产品,确切说是为何要开发全新的渲染引擎。

Spartan项目

如果你之前对Spartan项目有所了解的话,应该知道它之所以是一款全新产品,主要在于微软重新为其开发排版引擎,更注重对现代Web标准的支持,而这也是IE一直以来的弱点,至少在很多人心目中是这样。

作为一款老牌产品,IE浏览器已在Windows中服役20年,也曾经历过一番起起伏伏,辉煌时期层一度占据超过九成的市场份额,不如意的时候也会被无数人诟病。从上世纪末起,微软开始从各方面改进IE:更快更新的JavaScript和布局引擎、GPU加速渲染和3D图形、多点触控、F12开发者工具等等,尽力让IE赶上当前主流的Web标准。

近几年IE的改进:GPU渲染、 Chakra引擎、多点触控、F12工具和WebGL

然而,这并不是简单增加对新标准支持就可以完事的。众所周知,整个互联网是由一个个网站所组成,根据一份统计,目前有效的网站超过440亿个。这么多网站有新有旧,编写代码也各不相同,这就带来一个问题:浏览器对这些兼容性到底如何。将所有网站逐一进行测试基本是件不可能完成的任务,折中解决方案是筛选出其中比较主要(流量比较大)的网站进行测试,符合这个条件的网站大约有9000个,它们占据了整个互联网近9成的访问量。不过即使是这样,在过去数年里,每次新版IE发布后仍会收到很多网站在新版IE下出现各种兼容问题的反馈报告。

在Windows 10开发过程中,微软正在为进一步解决兼容性问题而努力,他们认为需要反思一下以往针对兼容性的解决方式。在过去,微软采取的措施有:在为IE添加新标准(比如HTML5)支持的同时,也尽量保留对旧版本的向下兼容性;提供网站兼容性视图列表让IE在访问它们时强制采用旧版本兼容模式;使用X-UA-Compatible强制IE浏览器兼容模式等。这些都有着各自弊端,比如IE保留的向下兼容性实质上很有限,兼容性视图列表需要持续维护和更新。

深思熟虑下,一个"大胆"的决定出炉了,在不让前几年努力白费的情况下,与过去决裂。这个决定就是开发全新的网页渲染引擎,一个独立于IE、更符合现代标准的新引擎。虽然当下有个现成优秀产品--开源渲染引擎Webkit,但互联网不应该只有一家独大,且自己研发的产品更具可控性,所以最终选择自行研发引擎。

新渲染引擎最初是作为MSHTML.DLL(HTML解释器模块)的一个分支出现,不过很快就从中分离出来,成为一个独立的新引擎。这个新引擎可以毫无顾忌的去处原有的旧元素,完全遵循最新规范来设计。而原来那些东西依旧可以保留在旧引擎中,专门为需要兼容性的网站服务。这两个不同渲染引擎可以根据网站需要来切换,当然过程是无缝的。另外,全新渲染引擎需要一个新的用户代理字符串(user-agent string)和IE区分,以保证不发送任何传统IE的代码,这样就能大幅降低对兼容性视图列表的依赖。

成品Spartan浏览器尚未发布

对于正在尝试Windows 10的用户,这个新引擎已经作为一项常驻服务存在于系统中,用户已经可以使用了。至于完整的Spartan浏览器,何时和公众见面还不得而知,唯有等待……

广告、内容合作请点这里:寻求报道

相关阅读

精彩图集