`
echo715
  • 浏览: 12851 次
  • 性别: Icon_minigender_2
  • 来自: 长沙
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

浏览器内核的解析和对比

阅读更多


要搞清楚浏览器内核是什么,首先应该先搞清楚浏览器的构成。简单来说浏览器可以分为两部分,shell+内核。其中shell的种类相对比较多,内核则比较少。Shell是指浏览器的外壳:例如菜单,工具栏等。主要是提供给用户界面操作,参数设置等等。它是调用内核来实现各种功能的。内核才是浏览器的核心。内核是基于标记语言显示内容的程序或模块。也有一些浏览器并不区分外壳和内核。从Mozilla将Gecko独立出来后,才有了外壳和内核的明确划分。目前主流的浏览器有IE6、IE8、Mozilla、 FireFox、Opera、Safari、Chrome、Netscape等。

什么是浏览器内核

浏览器内核又可以分成两部分:渲染引擎(layout engineer或者Rendering Engine)和JS引擎。它负责取得网页的内容(HTML、XML、图像等等)、整理讯息(例如加入CSS等),以及计算网页的显示方式,然后会输出至显示器或打印机。浏览器的内核的不同对于网页的语法解释会有不同,所以渲染的效果也不相同。所有网页浏览器、电子邮件客户端以及其它需要编辑、显示网络内容的应用程序都需要内核。(参见维基百科)JS引擎则是解析Javascript语言,执行javascript语言来实现网页的动态效果。最开始渲染引擎和JS引擎并没有区分的很明确,后来JS引擎越来越独立,内核就倾向于只指渲染引擎。有一个网页标准计划小组制作了一个ACID来测试引擎的兼容性和性能。内核的种类很多,如加上没什么人使用的非商业的免费内核,可能会有10多种,但是常见的浏览器内核可以分这四种:Trident、Gecko、 Presto、Webkit。

Trident又称MSHTML,是微软开发的渲染引擎(包含了Javascript引擎JScript),他已经深入了Windows操作系统的骨髓,例如Windows Media Play,Windows Explorer,Outlook Express等都使用了。目前很多浏览器都使用这个引擎,例如IE,Maxthon(最新版已经不使用)等。

Gecko是C++开发的,Open Source的渲染引擎,包括了SpiderMonkey(Rhino)。主要的使用者有Firefox。

Webkit是苹果公司基于KHTML开发的。他包括Webcore和JavaScriptCore(SquirrelFish,V8)两个引擎。主要的使用者有Safari,Chrome。

Presto由Opera Software公司开始的,用于Opera的渲染引擎。Macromedia Dreamweaver (MX版本及以上)和Adobe Creative Suite 2也使用了Presto的内核。

主流浏览器所使用的内核分类

Trident内核:IE,MaxThon,TT,The World,360,搜狗浏览器等
Gecko内核:Netscape6及以上版本,FF,MozillaSuite/SeaMonkey等
Presto内核:Opera7及以上
Webkit内核:Safari,Chrome等

Engine


Creator


Software license


Leading application

Gecko


Netscape/Mozilla Foundation


MPL/GNU GPL/GNU LGPL tri-license


Mozilla Firefox

KHTML


KDE


GNU LGPL


Konqueror

Presto


Opera Software


Proprietary


Opera

Tasman


Microsoft


Proprietary


Microsoft Entourage

Trident


Microsoft


Proprietary


Internet Explorer

WebKit (Based on KHTML)


WebKit Foundation


GNU LGPL, BSD-style


Safari, Google Chrome

JS引擎

JavaScript最初由网景公司的Brendan Eich设计,是一种动态、弱类型、基于原型的语言,内置支持类。以它为基础,制定了ECMAScript标准。他的起源并不是如《Javascript高级程序设计》书中所述,是Brendan Eich自主发明的。(参考aimingoo的考证文章)JavaScript在浏览器的实现中还必须含有DOM和BOM。Web浏览器一般使用公共 API来创建主机对象来负责将DOM对象反射进JavaScript。
 

Trident


Gecko


WebKit


KHTML


Presto

Name of ECMAScript Engine


JScript


Spidermonkey


JavaScriptCore


KJS


linear b/futhark

ECMAScript Version


Edition 3


Yes


0.6


Yes


Yes


7.0

JavaScript 1.5 extensions


No


0.6


Yes


Yes


7.0

JavaScript 1.7 extensions


No


1.8.1


No


No


No

JavaScript 1.8 extensions


No


1.9


No


No


No

浏览器内核实现原理

渲染流程如下所示:

渲染引擎运作流程

Mozilla架构设计:界面和实现分离。采用标记语言,JavaScript,C++来开发。JSEngine就是指 SpideMonkey,Layout就是指Gecko。Mozilla的一个关键部分是XPCOM和NSPR。

Mozilla架构设计

Webkit的处理流程:

Webkit的处理流程
浏览器内核的优缺点

Trident:这种浏览器内核是IE浏览器用的内核,因为在早期IE 占有大量的市场份额,所以这种内核比较流行,以前有很多网页也是根据这个内核的标准来编写的,但是实际上这个内核对真正的网页标准支持不是很好,甚至在 2005年,与网页标准制定组织(W3C理事会)所制定的标准发生了脱节,同时 Trident 内核本身的BUG比较多,对一些符合W3C标准的网页代码支持不是很好,这在早期的IE版本中比较明显,比如IE5.5以前(包括IE5.5),其实IE6对W3C标准的支持也不是很好,而我们现在很多人都在使用IE6,事实上它也属于一个比较早的版本。

但是由于IE的高市场占有率,微软也很长时间没有更新Trident内核,这导致了二个结果
1,Trident内核和W3C标准脱节。
2,Trident内核的大量Bug等安全问题没有得到解决,加上一些专家学者公开自己认为IE浏览器不安全的观点,使很多用户开始转向其他浏览器,FF,Opera就是这时期兴起的。
Gecko:这是Firefox 和 Flock 所采用内核,这个内核的优点就是功能强大、丰富,可以支持很多复杂网页效果和浏览器扩展接口,但是代价是也显而易见就是要消耗很多的资源,比如内存。
Presto:Opera 采用的是 Presto内核,Presto内核被称为公认的浏览网页速度最快的内核,这得益于它在开发时的天生优势,在处理JS脚本等脚本语言时,会比其他的内核快 3倍左右,缺点就是为了达到很快的速度而丢掉了一部分网页兼容性。

Webkit:Webkit 是 Safari 采用的内核,不过 Safari 是苹果系统下的浏览器(虽然也有windows版,但是比较少),所以只简单介绍一下这个内核的优点和缺点,优点就是网页浏览速度较快,虽然不及 Presto 但是也胜于 Gecko 和 Trident,缺点是对于网页代码的容错性不高,也就是说对网页代码的兼容性较低,会使一些编写不标准的网页无法正确显示。

总结:就浏览器来说,互联网经历了十年的高速发展期,近几年市场上也推出了很多新的浏览器,但是他们并非是采用自主开发的内核,所以浏览器内核本身实际没有实质突破。
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
文章引用地址:http://www.iefans.net/liulanqi-neihe-jiexi/ 作者:iefans
分享到:
评论

相关推荐

    WebKit2-7604.5.6 浏览器内核

    WebKit2-7604.5.6 是一个特定版本...对于测试人员来说,不同版本的WebKit可以用于对比和测试网站在不同内核下的兼容性。而对于普通用户,浏览器内核的更新通常由浏览器开发商自动完成,用户无需直接接触这些底层组件。

    常见浏览器的4大内核

    ### 常见浏览器的四大内核:技术...综上所述,不同的浏览器内核各有优劣,选择合适的内核需根据具体的应用场景和目标用户群体来决定。对于开发者而言,了解这些内核的技术特点,有助于构建更加兼容和高效的Web应用。

    浏览器Apple Safari和Google Chrome内核webkit

    **WebKit与其他浏览器内核的对比** 与WebKit竞争的两个主要内核是Gecko(由Mozilla基金会维护,用于Firefox等)和Trident(Microsoft的Internet Explorer和早期版本的Edge)。Gecko以其强大的功能集闻名,支持众多...

    wke浏览器加强版 附带调用源码

    4. **浏览器内核**: WKE浏览器加强版的内核可能进行了优化,提升了渲染速度、内存管理效率,或者增强了对某些网络协议的支持,提供更好的用户体验。 5. **学习资源**: 对于学习Web技术的人来说,wke浏览器加强版的...

    app-项目开发手机浏览器

    - **高效内核浏览器**:如Chrome Lite和Safari,具备全面功能,性能优越,支持W3C标准。 - **模拟浏览器**:如Opera Mini,使用非标准解析方式,与桌面浏览器体验有较大差异。 - **增强型浏览器**:基于...

    支持安装于Chromiu内核浏览器(谷歌Chrome、360极速、360安全、搜狗、QQ、UC、猎豹等)

    标题和描述中提到的是关于一个可以安装在基于Chromium内核浏览器上的扩展程序。这个扩展程序的主要功能似乎与电商搜图下载有关,因为标签中包含了"chrome"和"电商搜图下载"。Chromium内核是Google Chrome浏览器的...

    GeckoFx xulrunner C#火狐浏览器内核HTML5

    【openwebkit】可能是指开源的WebKit浏览器引擎,这里可能是将Gecko与WebKit进行对比,WebKit是另一个广泛使用的开源渲染引擎,主要被Safari和Chrome等浏览器采用。在本项目中,虽然标签提到了openwebkit,但实际...

    X5WebDemo_spend4hq_x5tbs_x5内核dome_x5_x5内核_源码.rar

    X5内核是腾讯公司开发的一款强大的移动浏览器内核,广泛应用于QQ浏览器、微信内置浏览器等多个平台,以其优秀的性能和兼容性著称。本文将深入探讨X5内核的核心特性,并结合提供的源码进行分析。 一、X5内核概述 X5...

    网狐内核6.6 的 测试可以用

    内核是浏览器的心脏,负责解析HTML、CSS、JavaScript等Web标准,以及处理网络请求和渲染页面。这篇内容将深入探讨网狐内核6.6的相关知识点,包括其功能特性、性能优化、兼容性以及测试方法。 首先,网狐内核6.6可能...

    C#网页浏览器模块

    WebBrowser控件基于Internet Explorer的内核,因此它能够解析和显示HTML、CSS、JavaScript等内容,支持大部分现代网页标准。开发者可以通过调用控件的各种属性、方法和事件来控制网页的加载、导航和交互。 在【描述...

    suorceinsight 阅读内核代码的利器

    3. **符号浏览器和项目管理**:SourceInsight的符号浏览器能列出所有在当前项目中的类、函数和变量,便于快速查找和导航。同时,强大的项目管理功能使得用户可以轻松管理多个源代码仓库,对于内核开发人员来说,这...

    ietester 测试不同浏览器

    由于IE浏览器历史上存在多个版本,并且每个版本的内核解析机制有所不同,这导致开发者在创建网页时常常会遇到跨版本兼容性问题。IETester就是为了帮助开发者解决这一问题而设计的。 **二、IETester功能** 1. **多...

    前端面试宝典

    ##### 浏览器内核 在前端开发中,了解不同浏览器所使用的内核对于确保网页在各种环境中的一致性和兼容性至关重要。 - **IE (Internet Explorer):** 使用Trident内核。 - **Firefox:** 使用Gecko内核。 - **Safari:...

    使用于Windows server2003操作系统的IE7安装文件

    8. **技术演进**:对比IE7与现代浏览器的差异,强调技术创新和进步对用户和开发者的影响。 通过以上分析,我们可以看到,虽然这些资源属于过时的技术,但它们可以帮助我们理解早期互联网和服务器管理的历史,同时...

    前端面试文件content_1636425212663(1).docx

    浏览器内核 * 浏览器主要分为两个部分:渲染引擎和 JS 引擎 * 渲染引擎:主要负责获取页面内容和排版渲染页面 * JS 引擎:解析和执行 JS 来实现页面的动态效果,以及交互内容 * 常用浏览器的内核有:Webkit、Gecko...

    js判断运行jsp页面的浏览器类型以及版本示例

    1. `/webkit[/](\w+)/` 匹配Webkit内核的浏览器,如早期版本的Chrome和Safari。`Webkit`是Safari的渲染引擎名称,后来也被多个浏览器使用,包括早期的Chrome。匹配的`([\w.]+)`部分是捕获组,用于获取版本号。 2. `...

    谷歌浏览器加速插件.zip

    谷歌浏览器(Chrome)是一款非常流行的网络浏览器,以其稳定性和高性能受到全球用户的喜爱。然而,在浏览网页时,有时可能会遇到页面加载速度慢的问题,这可能是由于网络状况、浏览器缓存、过多的扩展程序或其他因素...

    面试宝典指南大全

    浏览器内核包括解析HTML/CSS的引擎和JavaScript引擎,如Blink(Chromium)、Gecko(Firefox)等。 33. **标准模式与怪异模式** 标准模式(Strict Mode)遵循HTML和CSS规范,而怪异模式(Quirks Mode)模拟旧版...

    IE6对多个CSS样式的解析

    文章通过实验和实例,说明了IE6在解析多个CSS样式时的特定行为模式,并对比了Firefox浏览器的行为差异。这些发现对于网页开发者来说是非常重要的,特别是在需要兼容老版本浏览器的情况下。这些知识可以帮助开发者更...

Global site tag (gtag.js) - Google Analytics