微软披露了Spartan中所使用的渲染引擎的细节

微软披露了在Spartan web浏览器中所使用的新渲染引擎的更多信息,Windows 10的桌面版本和移动设备版本将预装该浏览器。

Charles Morris是Spartan项目的项目经理主管,他在一篇博客帖子中详细地解释了该项目背后的成因、IE浏览器的历史以及未来的计划。该项目的成因之一是为了打造一个能够与Chrome和Firefox竞争的现代化渲染引擎,除此之外,Morris还提到:“我们需要计划这样一种浏览器,在我们快速地引入现代化的HTML5特性的同时,它也能够高度地向后兼容企业客户的需求”。

新的渲染引擎最初是基于现有的Trident引擎进行开发的,该引擎中包含了向后兼容达20年的遗留代码。在新的代码分支创建之后,微软耗费了几个月的精力,以删除各种不必要的代码,例如文档模式和VBScript等等,这些特性在精益的、更现代化的引擎中已无用武之地了。但是,为了继续支持那些针对特性的老版本IE所创建的企业web应用,新的Spartan浏览器中依然保留了陈旧的引擎。Spartan能够“无缝地”在两种渲染引擎之间进行自动切换。

在Hacker News网站上的一篇讨论中,微软的高级web平台工程师Jacob Rossi表示:“由于Spartan中移除了老版本IE中遗留的那些冗余部分,因此它的磁盘与内存占用都比IE要小”。

自从Windows Phone 8.1更新版本推出之后,微软就改变了浏览器的用户代理字符串(user agent),改变后的字符串会让目标网站认为该请求是来自于某些更流行的设备的,例如iPhone。为了确保Spartan中能够获得最好的内容展示效果,新的浏览器也将继续使用这一做法,它的用户代理字符串将被改为:

Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) 
Chrome/39.0.2171.71 Safari/537.36 Edge/12.0

请注意:在新的字符串中没有了“Trident”的身影,取而代之的是“Edge/12.0”。

在这篇帖子中,微软表示,他们曾经讨论过是否要使用开源的WebKit渲染引擎,但最终还是决定开发一套自己的引擎。Morris说道:“虽然使用WebKit具有某些优势,但经过进一步的调查后,我们还是认为这不是正确的方向,原因主要有两点”。

首先,Web的原则之一就是让多种独立的、并且能够互操作的Web标准的实现共存,我们也认为Web不应该朝向单一的方向发展。其次,从整个工程所需的精力方面来看,与使用开源引擎开发全新的浏览器相比,如果我们能够基于自有的引擎进行开发,就能够更快地为客户推出一个专注于互操作性的引擎。

在推特上的一场对话中,用户@sircmpwn询问了微软将Spartan浏览器的代码开源的可能性。微软对此回应到:“近期没有将代码全部开源的计划,但我们会以别的方式拥抱开放性(例如通过http://status.modern.ie网站)”。

IE从版本11开始就设定为自动升级,在Windows 10中也会继续沿用这一持续更新的设定。多年以来,由于IE的兼容性和“怪癖”所造成的问题一直饱受web开发者们的抨击,至于Spartan能够平息这些批评的声音,还有待时间的检验。

查看英文原文: Microsoft Shares Details on Spartan Rendering Engine

你可能感兴趣的:(微软披露了Spartan中所使用的渲染引擎的细节)