不同浏览器内核引擎区别

一、浏览器:

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

二、内核:

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

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的内核。

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

四、实现原理:

渲染流程如下所示:

[img]http://www.alidw.com/wp-content/uploads/2010/01/c.JPG[/img]

Mozilla架构设计:界面和实现分离。采用标记语言,JavaScript,C++来开发。JSEngine就是指 SpideMonkey,Layout就是指Gecko。Mozilla的一个关键部分是XPCOM和NSPR。
[img]
http://www.alidw.com/wp-content/uploads/2010/01/b.JPG[/img]

Webkit的处理流程:

[img]http://www.alidw.com/wp-content/uploads/2010/01/a.JPG[/img]

五、手机浏览器:

手机浏览器分成两类:基于HTML和基于WAP的,对应于移动运营商就是NET和WAP两种流量。手机浏览的模式主要有两种:一是浏览器本身先读取 Web网页,然后通过重新排版,将Web网页的内容转换成类似于WAP网页的版面;二是通过放大缩小显示方式,力求在较小的显示屏幕上显示整个或部分 Web网页。这两种方式侧重点不同,分别以快速检索和方便阅读为主要目标。其中UCWeb,OperaMini采用第一种方式。其他如 Deepfish(IE),Minimo(Mozilla),Safari采用第二种方式。

在手机浏览器领域,WAP已经成为了主流标准。目前,世界上掌握WAP浏览器核心技术的厂商只有4家,分别是美国的Openvave,瑞典的 Deleca,日本的Access和韩国的Infraware。可以从手机浏览器的User_Agent信息中看出来。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值