微软披露了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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/545177.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

常见疑惑问题

常见疑惑问题maven是什么maven是什么 maven——用于导入jar包的快捷方法

c++ array stl_C ++ STL中带有示例的array :: front()函数

c array stlC STL array :: front()函数 (C STL array::front() function) font() function is a library function of array and it is used to get the first element of an array, it returns the reference to the first element in an array. font()函数是array的库函数&…

千万不要这样写代码!9种常见的OOM场景演示

《Java虚拟机规范》里规定除了程序计数器外,虚拟机内存的其他几个运行时区域都有发生 OutOfMemoryError 异常的可能,我们本文就来演示一下这些错误的使用场景。一. StackOverflowError1.1 写个 bugpublic class StackOverflowErrorDemo {public static v…

Android开发教程:手机震动控制浅析

Android系统中Vibrator对象负责对手机震动的处理,具体的实现方法: 1.获取振动器Vibrator的实例: Vibrator vibrator (Vibrator) getSystemService(VIBRATOR_SERVICE); getSystemService(VIBRATOR_SERVICE):获得 一个震动的服务2.…

MySQL数据库安装与配置详解

目录 一、概述 二、MySQL安装 三、安装成功验证 四、NavicatforMySQL下载及使用 一、概述 MySQL版本:5.7.17 下载地址:http://rj.baidu.com/soft/detail/12585.html?ald 客户端工具:NavicatforMySQL 绿色版下载地址:http://www.c…

java 根据类名示例化类_Java LocalDateTime类| 带示例的getNano()方法

java 根据类名示例化类LocalDateTime类getNano()方法 (LocalDateTime Class getNano() method) getNano() method is available in java.time package. getNano()方法在java.time包中可用。 getNano() method is used to get nano-of-second field value from this date-time o…

求求你,不要再使用!=null判空了!

对于Java程序员来说,null是令人头痛的东西。时常会受到空指针异常(NPE)的骚扰。连Java的发明者都承认这是他的一项巨大失误。那么,有什么办法可以避免在代码中写大量的判空语句呢?有人说可以使用 JDK8提供的 Optional …

Linux系统的基本法则

Linux基本法则:1.一切皆文件:Linux系统中基本上都为文件组成,包括配置文件、硬件信息等;2.由重多的单一目的小程序组成,并且将各种小程序组合可以完成复杂任务;3.尽可能避免捕获用户接口,为了方…

android字符串复制到剪贴板

android2.1之后版本 其一:(已运行成功 )ClipboardManager clip (ClipboardM anager)getSystemService(Context.CLIPB OARD_SERVICE); clip.getText();// 粘贴clip.setText(str); // 复制其二:ClipboardM anager c (ClipboardMana…

date.gethour_Java LocalDateTime类| 带示例的getHour()方法

date.gethourLocalDateTime类getHour()方法 (LocalDateTime Class getHour() method) getHour() method is available in java.time package. getHour()方法在java.time包中可用。 getHour() method is used to get an hour-of-day field value from this date-time object. ge…

JDBC(Java语言连接数据库)

JDBC(Java语言连接数据库)JDBC本质整体结构基层实现过程(即用记事本而不是idea)第一种实现方式第二种实现方式乐观锁和悲观锁乐观锁悲观锁JDBC本质 整体结构 基层实现过程(即用记事本而不是idea) 第一种实…

那些牛逼的数据分析师,SQL用的到底有多溜

从各大招聘网站中可以看到,今年招聘信息少了很多,但数据分析相关岗位有一定增加,而数据分析能力几乎已成为每个岗位的必备技能。是什么原因让企业如此重视“数据人才”?伴随滴滴出行、智慧营销等的落地商用,部分企业尝…

knn机器学习算法_K-最近邻居(KNN)算法| 机器学习

knn机器学习算法Goal: To classify a query point (with 2 features) using training data of 2 classes using KNN. 目标:使用KNN使用2类的训练数据对查询点(具有2个要素)进行分类。 K最近邻居(KNN) (K- Nearest Neighbor (KNN)) KNN is a basic machine learning…

Linux 指令的分类 (man page 可查看)

man page 常用按键 转载于:https://www.cnblogs.com/aoun/p/4324350.html

google高级搜索命令

一、allintitle:当我们用allintitle提交查询的时候,Google会限制搜索结果仅是那些在网页标题里边包含了我们所有查询关键词的网页。例 [allintitle: detect plagiarism],提交这个查询,Google仅会返回在网页标题里边包含…

Springboot遇到的问题

Springboot遇到的问题1_访问4041.1_url错误1.2_controller和启动项不在同级目录1.3_未加ResponseBody2_字母后端显示大写,传到前端变为小写2.1_Data注释问题1_访问404 1.1_url错误 1.2_controller和启动项不在同级目录 1.3_未加ResponseBody 在方法上面加&#…

45 张图深度解析 Netty 架构与原理

作为一个学 Java 的,如果没有研究过 Netty,那么你对 Java 语言的使用和理解仅仅停留在表面水平,会点 SSH 写几个 MVC,访问数据库和缓存,这些只是初等 Java 程序员干的事。如果你要进阶,想了解 Java 服务器的…

ajax实现浏览器前进后退-location.hash与模拟iframe

为什么80%的码农都做不了架构师?>>> Aajx实现无数据刷新时,我们会遇到浏览器前进后退失效的问题以及URL不友好的问题。 实现方式有两种 1、支持onhashchange事件的,通过更新和读取location.hash的方式来实现 /* 因为Javascript对…

java环境变量配置以及遇到的一些问题

java环境变量配置以及遇到的一些问题1_下载2_配置环境变量2.1_配置JAVA_HOME2.2_配置CLASS_PATH2.2_配置系统路径PATH3_遇到的问题3.1_输入java -version无效3.2_javac无效1_下载 2_配置环境变量 打开我的电脑,右击空白处点击属性 点击高级系统设置 点击环境变量…

c fputc 函数重写_使用示例的C语言中的fputc()函数

c fputc 函数重写C中的fputc()函数 (fputc() function in C) Prototype: 原型: int fputc(const char ch, FILE *filename);Parameters: 参数: const char ch, FILE *filenameReturn type: int 返回类型: int Use of function: 使用功能&a…