各大浏览器内核(Rendering Engine)

记得刚开始写网页的时候,听童鞋们说各大浏览器的内核,也是懵懵懂懂的,知一不知其二,今天特意查一下: 程序员

内核只是一个通俗的说法,其英文名称为“Layout engine”,翻译过来就是“排版引擎”,也被称为“页面渲染引擎”(下文中各类说法通用)。它负责取得网页的内容(HTML、XML、图像等等)、整 理信息(例如加入CSS等),以及计算网页的显示方式,而后会输出至显示器或打印机。全部网页浏览器、电子邮件客户端以及其它须要编辑、显示网络内容的应 用程序都须要排版引擎。 web

浏览器最重要或者说核心的部分是“Rendering Engine”,可大概译为“解释引擎”,不过咱们通常习惯将之称为“浏览器内核”。负责对网页语法的解释(如HTML、JavaScript)并渲染(显示)网页。 chrome

因此,一般所谓的浏览器内核也就是浏览器所采用的渲染引擎,渲染引擎决定了浏览器如何显示网页 的内容以及页面的格式信息。不一样的浏览器内核对网页编写语法的解释也有不一样,所以同一网页在不一样的内核的浏览器里的渲染(显示)效果也可能不一样,这也是网 页编写者须要在不一样内核的浏览器中测试网页显示效果的缘由。 浏览器

浏览器内核不少,若是加上全部的几乎没有什么人在用的非商业的免费内核,那么可能大约有10款以上甚至更多,不过一般咱们比较常见的大约只有如下四种,下面先简单介绍一下。 安全

Trident

Trident: IE浏览器使用的内核,该内核程序在1997年的IE4中首次被采用,是微软在Mosaic代码的基础之上修改而来的,并沿用到目前的IE8。 Trident其实是一款开放的内核,其接口内核设计的至关成熟,所以才有许多采用IE内核而非IE的浏览器涌现(如 Maxthon、The World 、TT、GreenBrowser、AvantBrowser等)。此外,为了方便也有不少人直接简称其为IE内核(固然也不排除有部分人是由于不知道内 核名称而只好如此说)。 网络

因为IE自己的“垄断性”(虽然名义上IE并不是垄断,但实际上,特别是从Windows 95年代一直到XP初期,就市场占有率来讲IE的确借助Windows的东风处于“垄断”的地位)而使得Trident内核的长期一家独大,微软很长时间 都并无更新Trident内核,这致使了两个后果——一是Trident内核曾经几乎与W3C标准脱节(2005年),二是Trident内核的大量 Bug等安全性问题没有获得及时解决,而后加上一些致力于开源的开发者和一些学者们公开本身认为IE浏览器不安全的观点,也有不少用户转向了其余浏览 器,Firefox和Opera就是这个时候兴起的。非Trident内核浏览器的市场占有率大幅提升也导致许多网页开发人员开始注意网页标准和非IE浏 览器的浏览效果问题。 架构

表明浏览器:IE4,IE5,IE6,IE7,IE8,IE9,Maxthon,The World,GreenBrowser,腾讯TT等。 ide

Gecko

Gecko: Netscape6开始采用的内核,后来的Mozilla FireFox也采用了该内核,Gecko的特色是代码彻底公开,所以,其可开发程度很高,全世界的程序员均可觉得其编写代码,增长功能。由于这是个开源 内核,所以受到许多人的青睐,Gecko内核的浏览器也不少,这也是Geckos内核虽然年轻但市场占有率可以迅速提升的重要缘由。 测试

事实上,Gecko引擎的由来跟IE不无关系,前面说过IE没有使用W3C的标准,这致使了微 软内部一些开发人员的不满;他们与当时已经中止更新了的 Netscape的一些员工一块儿创办了Mozilla,以当时的Mosaic内核为基础从新编写内核,因而开发出了Geckos。不过事实上,Gecko 内核的浏览器仍然仍是Firefox用户最多,因此有时也会被称为Firefox内核。此外Gecko也是一个跨平台内核,能够在Windows、 BSD、Linux和Mac OS X中使用。 优化

表明浏览器:Netscape,Mazilla Firefox;

Presto

Presto: 目前Opera采用的内核,该内核在2003年的Opera7中首次被使用,该款引擎的特色就是渲染速度的优化达到了极致,也是目前公认网页浏览速度最快的浏览器内核,然而代价是牺牲了网页的兼容性。

实际上这是一个动态内核,与前面几个内核的最大的区别就在脚本处理上,Presto有着天生的 优点,页面的所有或者部分都可以在回应脚本事件时等状况下被从新解析。此外该内核在执行Javascrīpt的时候有着最快的速度,根据在同等条件下的测 试,Presto内核执行同等Javascrīpt所需的时间仅有Trident和Gecko内核的约1/3(Trident内核最慢,不过二者相差没有 多大)。只惋惜Presto是商业引擎,使用Presto的 除开Opera之外,只剩下NDSBrowser、Wii Internet Channle、Nokia 770网络浏览器等,这很大程度上限制了Presto的发展。

表明浏览器:Opera,NDSBrowser,Wii Internet Channle,Nokia 770;

Webkit

Webkit:苹果公司本身的内核,也是苹果的Safari浏览器使用的内核。 Webkit引擎包含WebCore排版引擎及JavaScriptCore解析引擎,均是从KDE的KHTML及KJS引擎衍生而来,它们都是自由软 件,在GPL条约下受权,同时支持BSD系统的开发。因此Webkit也是自由软件,同时开放源代码。在安全方面不受IE、Firefox的制约,因此 Safari浏览器在国内仍是很安全的。

限于Mac OS X的使用不普遍和Safari浏览器曾经只是Mac OS X的专属浏览器,这个内核自己应该说市场范围并不大;但彷佛根据最新的浏览器调查代表,该浏览器的市场甚至已经超过了Opera的Presto了——固然 这一方面得益于苹果转到x86架构以后的人气暴涨,另外也是由于Safari 3终于推出了Windows版的缘故吧。Mac下还有OmniWeb、Shiira等人气很高的浏览器。

google的chrome也使用webkit做为内核。

WebKit 内核在手机上的应用也十分普遍,例如 Google 的手机 Gphone、 Apple 的 iPhone, Nokia’s Series 60 browser 等所使用的 Browser 内核引擎,都是基于 WebKit。

2010年4月8日最新的搜狗浏览器也是采用了webkit内核,号称双引擎内核,呼声很高,期待其发展。

表明浏览器:Safari,Chrome;