• 21
微软打造全新渲染引擎,大IE时代即将退隐
统计 阅读时间大约10分钟(3789字)

2015-03-16 微软打造全新渲染引擎,大IE时代即将退隐

IE浏览器作为Windows系统的默认浏览器,已接近二十多年历史。从曾经的独霸天下到如今饱受诟病乃至被用户打入冷宫,无不说明IE的辉煌已成为历史。面对如此现实,微软痛定思痛,拿出彻底告别过去的决心和打造完美互联网的雄心,誓要夺回当年的风光。

猎云网3月16日报道 (编译:小白)

猎云网注:IE浏览器作为Windows系统的默认浏览器,已接近二十多年历史。从曾经的独霸天下到如今饱受诟病乃至被用户打入冷宫,无不说明IE的辉煌已成为历史。面对如此现实,微软痛定思痛,拿出彻底告别过去的决心和打造完美互联网的雄心,誓要夺回当年的风光。

Windows 10系统将采用全新的浏览器。届时,在任何搭载最新操作系统的设备上——无论是手机还是平板,亦或是个人电脑等等——人们都将可以看到微软的新作:Project Spartan(代号为“斯巴达”的项目)。在不久的将来,我们将会陆续为大家揭开这款新型浏览器的神秘面纱。但在今天,在这篇文章中,我们希望能更多地跟大家聊聊我们新开发的渲染引擎,以及促使我们坚持开发一个新的渲染引擎的动机。这个新的渲染引擎可以兼容大多数的现代浏览器——因为我们一贯的目的是使我们的用户可以“畅游”互联网。尽管设计这样一个渲染引擎的初衷是为了开发斯巴达浏览器,但是对于Windows 10还保留的IE浏览器,它仍然适用,所以那些仍然因为特殊原因仍然不得不使用IE浏览器的企业或其他客户不必对此有任何担忧。

 

一边循规蹈矩,一边紧跟时代的IE浏览器

IE浏览器作为微软的默认浏览器已有20多年的历史。这些年来,随着互联网及其网站的不断发展更新,IE浏览器也一直保持更新状态。自2009年起,我们系统地开始对浏览器的各项子系统进行性能提升:从最新的Javascript和布局引擎,GPU加速渲染技术和3D图形技术和多线程触摸输入,到提升F12开发者工具以及支持企业模式的向后兼容性。

图注: IE浏览器之5年巨变——Fish IE(GPU渲染),出色的JavaScript运行表现,多线程触摸输入,新的F12开发者工具,以及最后的3D图形技术。

在将这些具有革命性意义的改进应用到主要版本的IE浏览器同时,我们始终恪守“不打破目前网络现状”的信条。考虑到整个互联网拥有超过440亿个大大小小的网站,要保持信念实属不易。所以在这些网站中,我们优先测试了访问量排在前9000的网站,这9000个网站的总通信量占到了整个网络通信量的88%。于是,“网络中的佼佼者”在这里变成了“长尾”——让我们可以集中精力测试最具有影响力的网站。在最新版本的发布之前,我们希望可以保证新版本的兼容性与旧版本的IE浏览器以及其他竞争浏览器能有大幅提高。

Project Spartan1

不可避免的意外情况

尽管我们已经测试了9000个常用网站,我们的兼容性遥遥领先,尽管我们发布的IE浏览器已经是最新、最完善的版本,我们仍会时不时地听到一些抱怨,这些抱怨或来自家人,或微软其他部门的同事,或者在线讨论。他们抱怨有些网站还是不能用IE浏览器打开。但是当我们郑重其事地检查这些无法打开的网站时,我们发现这些网站往往不属于被测试的9000个网站列表。而他们时常抱怨无法打开的那些网站通常都和生活中的一些琐事有关,比如无法完成街头的一家理发店的在线预约,或者不能在线浏览本地儿童足球联赛的日程表。

在Windows 10的策划过程中,我们希望可以解决这个明显的矛盾问题,即:为什么当我们的兼容性数据测试数据显示我们的浏览器兼容性已经有了很大提升的同时,我们的实际兼容性却在不断下降?

Project Spartan2

重新思考我们的假设猜想

随着我们越来越深入的挖掘问题所在,我们开始意识到我们需要在整个互联网范围内彻底地重新思考网站兼容性问题:

新旧系统对比。 在推广新HTML5的特性的同时,保留旧版本IE浏览器的兼容性,尤其针对企业网页应用的兼容性,是我们的另一项任务。在采用Trident内核(猎云网编辑君注:微软过去开发的一个渲染引擎)的旧版浏览器上,文件兼容性模式所能提供的兼容性十分有限,然而即便如此,我们依旧不能保证所有的兼容性,并且这也是一直是阻碍我们修复IE浏览器中特定行为的根源所在。此外,修复IE浏览器与其他现代浏览器之间长久存在的互通性漏洞,最终会导致某些网站的崩溃,而这些网站的脚本恰恰就是根据IE浏览器的特定行为编写的。

兼容性视图列表。 我们所得到的兼容性通过率,很大程度上依赖于已有的兼容性视图列表。虽然根据这个列表,我们可以通过“强制转化为兼容旧版浏览器的文件模式”来修复这些无法打开的网站,但是这么做却需要不断的测试和维护,并且对于常用的网站,这个方法的扩展性并不理想。

X-UA-Compatible 有的网站会对相对过时的文件模式采取强制使用“x-ua-compatible”标头的措施。人们或许会说这只是一时的权宜之计,但事实上,对于日后新版的IE浏览器,这些网站不会随即更新他们的网页脚本而只会继续采用所谓的“权宜之计”,即便他们早已针对某些其他现代浏览器为自己的网站开发了长期代码途径。

聚焦网络标准。 我们在设计HTML5的新特性时,一直有结合目前的互联网标准,理论上来讲这样的结合会有助于增加与其他现代浏览器之间的互通性。但是,标准文件的互通性很容易改变,结果就是造成实际互通性的鸿沟,以及留给网络开发者数不尽的漏洞亟需修复,而对于用户来说最直观的影响就是有更多的网站无法正常显示。

Project Spartan3

告别过去,展望未来

面临诸多问题,我们终于“鼓起勇气去面对现实”。我们需要制定一个计划,可以让网络开发者无论是基于何种浏览器,都能轻松地开发可兼容网站;我们需要制定一个计划,让用户在畅游互联网的过程中能够享受更加愉悦的浏览体验;我们需要制定一个计划,不管未来我们如何快速地推广HTML5的新特性,我们都能够为企业用户提供一个高度向后兼容的浏览器。

为了切实地应对这些挑战,我们忽然意识到我们不能再一味地试图改进原有的解决方式,我们迫切地需要告别过去,重新开始——当然这里的过去不包括2009年之后我们做出的所有改进。

 

真正见效的良药

告别过去即意味着新的网络渲染引擎即将诞生,告别已有20多年历史的IE浏览器,正如我们的设计初衷一般,新的渲染引擎势必具有与其他现代浏览器真正意义上的互通性——因此我们为Windows 10设计的口号就是“让互联网重获新生”。互联网标准仍将具有十分重要的地位,但是它的功能体现在后台,驱动不同浏览器之间的实际互通性,这个观点在升级Windows Phone 8.1的过程中我们就已经证明了它的实际意义,

然而这种以互通性为主的解决方法存在一个显而易见的问题,即采用已有的开源渲染引擎,比如WebKit。虽然采用已有的开源渲染引擎有其自身的优势,但是随着进一步的调查研究,我们发现有两个重要的原因促使我们不得不否定这个方法。其一,我们的互联网是建立在多个独立、但又相互协作的网络标准原则之上的,同时我们也认为这个原则可以有效地保证互联网多样性的存在。其二,考虑到这个解决方法所需要的工程量,我们发现与其围绕一个开源的渲染引擎搭建一个新的浏览器,不如我们自己开发引擎为用户提供互通性,这样的效果会更好(尤其是不再受到能否兼容旧版浏览器约束的情况下)。我们会继续考虑开放源码,分享有意义的源模型,以及在未来的帖子中分享更多的细节。

Project Spartan4

一个全新的渲染引擎诞生

雅各·罗西(Jacob Rossi)在Smashing杂志上发表过一篇详细的文章,其中说到新的引擎源于MSHTML.dll的一个分叉,并且发展十分迅速。鉴于“双引擎”的实现,我们可以在保留过去几年中的开发成果的同时,把旧的文件模式和其他老版的IE浏览器特性感从新的引擎中移除。另一方面,我们原来的引擎(MSHTML.dll)仍然可以维持原状(除了部分安全性和优先级的修改),以确保继续为我们的企业用户提供旧版浏览器的兼容功能。与此同时,我们也提供了新旧引擎之间的无缝切换功能,给用户带来更好的上网体验。

倘若要干净彻底地告别过去,一个新的用户代理字符串则必不可少,我们必须保证不再有任何IE特点的代码被继续发送。一直以来,IE浏览器都采用发送必要的令牌向服务器请求所需的内容。虽然这一贯的做法意味着较低的兼容性,但是却也揭示了亟需改进的互通性问题。

最后,当旧版的IE浏览器代码不再被发送,我们便可以彻底地不再依赖兼容性视图列表。于是,我们的实际兼容性便会得到大幅地提升。

 

改变,从最本质开始

然而,光有一个新的引擎还远远不够——我们还需要在寻找、追踪和解决互联网的长尾问题上取得显著的改进提高。为了实现这个目标,我们每天分析上万亿个从必应搜索中抓取到的网络链接来探索存在于互联网最常用和最不常用的网站中的那些模式。通过修复这些模式,这些网站最终能够正常在浏览器中显示。这项数据的收集,很大程度上得益于用户的反馈——通过选择合适的“表情符号”发送反馈结果。每天,我们可以收到上千份这样的反馈报告。

另外,通过我们的数据分析,我们重新修正了我们的内部工程流程,优先考虑解决实际互通性的问题。随着新流程的稳步推进,我们开始着手修复超过3000多个的互通性漏洞,又添加了40多条新的网络标准(迄今为止)以保证我们最终可以实现我们的目标。

这是一项浩大的工程,看上去似乎漫无边际——但是我们会一直检测数据,一直把新的改进应用到我们最新的渲染引擎中。对于已经升级到Windows 10 的用户,这个引擎会作为Windows 10中的一项默认服务长期存在。

Project Spartan5

众人拾柴火焰高:我们需要每一位用户的帮助!

我们有一个伟大的使命:创造一个“万能”的互联网。我们深知这样的使命,没有各位的支持和帮助,难以完成。所以,我们发自内心地鼓励各位加入到我们的斯巴达项目中,为我们提供宝贵的意见和建议。下面是我们为各位列出的一系列参与途径:

参加Windows Insider Program获取最新的Windows 10技术预览版并安装到您的设备上,然后在about:flags page中允许加载所有测试中的网络性能,在性能全开的条件下,测试你您的网站在我们最新的渲染引擎下的显示情况。如果您的设备暂不支持以上系统的安装使用,那么请尝试使用RemoteIE从Azure云端服务器直接下载最新版本的浏览器到您的Windows设备、iOS设备或者Android设备上。

如果在测试的过程中,您发现任何问题,请在表情符号中选择“皱眉”发送给我们,以便于我们后续跟踪问题。如果你希望反馈详细问题,您可以打开我们的漏洞反馈链接。

随时在status.modern.ie上检查我们的网络开发路线图。如果您认为有任何遗漏,请立即向我们发送您的需求或者在我们的“用户之声”网站上为已经提出的需求投票。

最后,请关注我们的官方Twitter @IEDevChat,提出您的意见和建议,或者您还可以参与我们的每月推特话题#AskIE。更多详细内容,请关注StackOverflow。

至此,我们深信我们告别过去的决心和创造一个全新渲染引擎的努力,必将会给我们的用户带来更好的上网体验,以及真正地提高跨平台的网络开发者的工作效率。在未来的几周里,我们将会与各位分享更多的细节,希望届时大家都能参与我们的互动。

想要了解更多创业创新知识,快速添加猎云网微信号: ilieyun

 

1、猎云网原创文章未经授权转载必究,如需转载请联系官方微信号进行授权。
2、转载时须在文章头部明确注明出处、保留官方微信、作者和原文超链接。如转自猎云网(微信号:lieyunjingxuan
)字样。
3、猎云网报道中所涉及的融资金额均由创业公司提供,仅供参考,猎云网不对真实性背书。
4、联系猎云,请加微信号:jinjilei
相关阅读
推荐阅读
{{item.author_display_name}}
{{item.author_display_name}}
{{item.author_user_occu}}
{{item.author_user_sign}}
×