科普:关于浏览器内核的一些小知识

浏览器是咱们天天几乎都必须使用的软件产品,但是对于本身天天都接触的浏览器,不少同窗其实对其一无所知。今天就跟你们说说关于浏览器内核的一些事儿吧,好让你了解多一点稍微内在的东西。浏览器

在下面的文章中主要介绍一些常见的浏览器内核和JavaScript引擎,部份内容来自于我在网上找到的资料,还有一些是我本身的理解,不保证彻底正确,可是大体应该是没错的。若是有误,请指正……安全

1、浏览器内核 (排版引擎/渲染引擎)架构

首先解释一下浏览器内核是什么东西。英文叫作:Rendering Engine,中文翻译不少,排版引擎、解释引擎、渲染引擎,如今流行称为浏览器内核,至于为何流行这么称呼,请自行领悟。框架

Rendering Engine,顾名思义,就是用来渲染网页内容的,将网页的代码转换为最终你看得见的页面。由于是排版,因此确定会排版错位等问题。为何会排版错位呢?有的是因为网站自己编写不规范,有的是因为浏览器自己的渲染不标准。ide

如今有几个主流的排版引擎,由于这些排版引擎都有其表明的浏览器,因此经常会把排版引擎的名称和浏览器的名称混用,好比常的说IE内核、Chrome内核。其实这样子是不太合理的,由于一个完整的浏览器不会只有一的排版引擎,还有本身的界面框架和其它的功能支撑,而排版引擎自己也不可能实现浏览器的全部功能。下面罗列一下几款主流的排版引擎和浏览器。工具

一、Trident 内核(Windows)性能

Trident 就是大名鼎鼎的 IE浏览器 所使用的内核,也是不少浏览器所使用的内核,一般被称为IE内核。基于Trident内核的浏览器很是多,这是由于Trident内核提供了丰富的调用接口。老的Trident内核(好比常说的IE6内核)一直是不遵循W3C标准的,可是因为当时IE6的市场份额最大,因此后果就是大量的网页专门为IE6等老Trident内核编写,在IE6下显示很正常,但其实这些网页的代码并不符合W3C标准,因而,彻底依据W3C标准写的网页在老的Trident内核下面又出现误差,这就是为何不少人以为后来的IE9的网页排版有时会乱了,而IE6则正常,其实不是浏览器兼容性差了,而是你访问的网页不符合新的标准。目前可供调用的最新版的Trident内核是IE9所用的内核,相较以前的版本对W3C标准的支持加强了不少。测试

Trident内核的常见浏览器有:网站

IE六、IE七、IE8(Trident 4.0)、IE9(Trident 5.0)、IE10(Trident 6.0);ui

世界之窗、 360安全浏览器、傲游;搜狗浏览器;腾讯TT;阿云浏览器(早期版本)、百度浏览器(早期版本)、瑞星安全浏览器、Slim Browser; GreenBrowser、爱帆浏览器(12 以前版本)、115浏览器、155浏览器; 闪游浏览器、N氧化碳浏览器、糖果浏览器、彩虹浏览器、瑞影浏览器、勇者无疆浏览器、114浏览器、蚂蚁浏览器、飞腾浏览器、速达浏览器、佐罗浏览器;

其中部分浏览器的新版本是“双核”甚至是“多核”,其中一个内核是Trident,而后再增长一个其余内核。国内的厂商通常把其余内核叫作“高速浏览模式”,而Trident则是“兼容浏览模式”,用户能够来回切换。

二、Gecko(跨平台)

Netscape6 启用的内核,如今主要由Mozilla基金会进行维护,是开源的浏览器内核,目前最主流的Gecko内核浏览器是Mozilla Firefox,因此也经常称之为火狐内核。由于Firefox的出现,IE的霸主地位逐步被削弱,Chrome的出现则是加速了这个进程。非Trident内核的兴起正在改变着整个互联网,最直接的就是推进了编码的标准化,也使得微软在竞争压力下不得不改进IE。不过比较惋惜的是,虽然是开源的,也开发了这么多年,基于Gecko的浏览器并很少见,除了一些简单的改动(坑爹的X浏览器)或者是从新编译(绫川ayakawa、tete009),深度定制或者加强型外壳的还比较少见。另外就是有一些其它软件借用了Gecko内核,好比音乐管理软件SongBird。常见的Gecko内核的浏览器:Mozilla Firefox、Mozilla SeaMonkey、Epiphany(早期版本)、Flock(早期版本)、K-Meleon。

三、KHTML(Linux)

KDE开发的内核,速度快捷,容错度低。这个内核可能不见得不少人知道,可是后面再看下去你就明白了。常见的KHTML内核的浏览器:Konqueror。

四、WebKit(跨平台)

由KHTML发展而来,也是苹果给开源世界的一大贡献。是目前最火热的浏览器内核,火热倒不是说市场份额,而是应用的面积和势头。由于是脱胎于KHTML,因此也是具备高速的特色,一样遵循W3C标准。从目前看来,WebKit 内核是最有潜力并且是已经有至关成绩的新兴内核,性能很是好,并且对W3C标准的支持很完善,本人很是看好它。

常见的WebKit内核的浏览器:Apple Safari (Win/Mac/iPhone/iPad)、Symbian手机浏览器、Android 默认浏览器。

五、Chromium(跨平台)

其实 Chromium 就是 WebKit,维基百科里面并无将Chromium从WebKit分出来,这个区分彻底是基于我我的的恶趣味。记得之前看过一个大牛的博文说过,Chromium把WebKit的代码梳理得可读性提升不少,因此之前可能须要一天进行编译的代码,如今只要两个小时就能搞定。这个我本身也没有考究过,可是估计可信。这个也能解释为何Gecko和WebKit出来了这么久,第三方编译、定制的版本并很少,可是由Chromium衍生出来的浏览器早就满坑满谷了。

常见的Chromium内核的浏览器:Google Chrome、Chromium、SRWare Iron、Comodo Dragon。

六、Presto(跨平台)

Opera 所采用的内核,准确地说,是Opera 7.0及之后版本的内核,Opera 3.5-6.1版本使用的内核叫作Elektra。不用说,Presto对W3C标准的支持也是很良好的。虽然我很喜欢Opera,可是我对Presto的渲染速度一直有保留态度。以前在OperaChina论坛看见有人说过,Presto优先解析文字,保证可阅读性,媒体资源的渲染放后。常见的Presto内核的浏览器:Opera。

2、JavaScript引擎

说完了排版引擎,接下来讲说 JavaScript 引擎。顾名思义,JavaScript引擎就是用来执行JS代码的。譬如说,一个算圆周率的网页,排版引擎把页面的框架给显示出来了,但最终的结果须要用到 Javascript 来计算,因此Javascript引擎的快慢也是对整个网页的速度有着很大影响,特别是目前愈来愈多相似 WebQQ、Gmail 等大量应用了复杂的 Javascript 运算的网站,不一样的引擎最终的速度差别会至关大。

为何要单独拿出来讲呢?由于它还涉及到跑分。常常看见不少文章在报道说哪一个浏览器更快,其实大部分说的就是JavaScript的渲染速度,而不是页面的载入速度。在网速许可的状况下,其实各个浏览器的页面载入速度差异不大(Opera逊色一些)。那是否是说对比JavaScript的渲染速度其实没有意义?也不是这么说,由于如今JavaScript在页面中的比重会愈来愈大,愈来愈多的动态页面开始大量借助JavaScript,好比如今主流的SNS、邮箱、网页游戏,因此JavaScript的渲染速度也是一个很重要的指标。JavaScript的渲染速度越快,动态页面的展现也越快。Opera在JavaScript引擎的跑分上面一直都是很牛逼的,通常来讲最新测试版之间PK,Opera基本都会夺冠。

一、Chakra 查克拉,IE9启用的新的JavaScript引擎。

二、SpiderMonkey / TraceMonkey / JaegerMonkey

SpiderMonkey应用在Mozilla Firefox 1.0-3.0,TraceMonkey应用在Mozilla Firefox 3.5-3.6版本,JaegerMonkey应用在Mozilla Firefox 4.0及后续的版本。

三、V8 应用于Chrome、傲游3。

四、Nitro 应用于Safari 4及后续的版本。

五、Linear A/Linear B/Futhark/Carakan

Linear A应用于Opera 4.0-6.1版本,Linear B应用于Opera 7.0~9.2版本,Futhark应用于Opera 9.5-10.2版本,Carakan应用于Opera 10.5及后续的版本。

六、KJS KHTML对应的JavaScript引擎。

3、几个与浏览器有关的测试项目

一、V8引擎 测试传送门,如今不少“双核”浏览器都用它来跑分测试JavaScript引擎,分数越高越好。

二、Acid3 测试传送门,这个主要是对网页标准的兼容性测试,分数越高表示越符合网页的开发标准,满分是100分。

三、HTML5 测试传送门,测试浏览器对HTML5标准的支持,分数越高越好。

4、几个奇葩

一、IETab

这是一款浏览器扩展,并不是内核。在没有第三方编译版本的时候,IETab一直是 Mozilla Firefox、Chrome等非Trident内核的浏览器的安装量最大的扩展之一,方便用户在不开启IE的状况下调用Trident内核访问一些兼容性比较差的网站。

二、Trident/Gecko双核浏览器

虽然IETab能实现部分需求,可是深度订制的毕竟仍是不同,因此Trident/Gecko双核浏览器就诞生了,Sleipnir、Avant 12(Orca)是这类里面比较常见的。Avant 12由于有Orca的前期积累,因此轻车熟路,后面还打算加入Chromium,变成三核浏览器,可是恰恰如今Mozilla Firefox和Chrome都在疯狂刷版本号,确定有一部分精力要花在跟进版本上。

三、Trident/WebKit双核浏览器

如今国内最主流的“双核”浏览器基本都是这个架构,360极速浏览器、世界之窗浏览器极速版、傲游三、搜狗浏览器、QQ浏览器、枫树浏览器、快快浏览器、百度浏览器、阿云浏览器(后期版本)、太阳花浏览器,其中最奇葩的是傲游3。其它双核浏览器都是基于Chromium的,而傲游是基于WebKit的,可是恰恰又用的是V8引擎。

四、Trident/Gecko/WebKit三核浏览器

目前能见的应该就是日本的Lunascape,Avant增长了WebKit内核以后也会归类到这里。说实话,Lunascape真的很难用,真的很奇葩。各个内核相对独立,外壳自己不够强化,稳定性不高,因此还不如用回单核浏览器。

5、几个小点

一、Chrome/Chromium

不少人都会说本身用的双核浏览器是Chrome/IE双核的,或者说是基于Chrome的。其实这种说法并不正确,由于Chrome自己并不开源,其它厂商是不能去定制Chrome的。能被修改、定制的是Chromium,Chrome的开源开发版本,代码和Build都提供下载。Chromium/Chrome两个单词都是铬,分别是拉丁文和英文,除了名字以外,颇有不少不一样,你能够本身对比一下。Chromium一天最多能够更新十几二十个版本,实验性的新特性都会如今这里放出,可是Chromium自己其实并不稳定。Chrome总共有四个更新分支:Canary、Dev、Beta、Stable,稳定性依次加强。

二、MyIE、MyIE二、傲游、GreenBrowser 自行搜索,一段历史。

三、页面兼容性判断

在确保IE浏览器没有损坏的基础上,搭配一款非Trident内核的浏览器进行判断,若是能够的话,最好全部内核都配齐了。控制变量就能找到问题所在,是浏览器自己的问题,仍是页面编码有问题。对于用户来讲就能更好地去选择本身该用什么浏览器访问什么页面,对于开发者来讲应该要写出无差异代码。

四、一直被模仿,一直被超越的Opera

Opera其实很好看也很好用,并且极度创新(貌似全页面缩放、多标签浏览、鼠标手势、快速拨号等功能都是它独创的),可是市场占有率一直很低。不少很好用的新特性老是被抄袭,因此你们笑称Opera“一直被模仿,一直被超越”。坊间传闻多标签页浏览器就是Opera发明的,可是貌似有人考究了这个传闻其实不属实。不过快速拨号、Turbo浏览等功能就是扎扎实实Opera独创的。你能够不用Opera,可是你会损失不少乐趣。

五、这年头流行刷版本号

如今版本号最高的浏览器是Chrome,稳定版的版本号是14,也是如今主流浏览器里面诞生时间最短的,真是一个刷版本号高手。早期的Chrome版本更迭还会增长一些比较重要的新特性,好比扩展支持,如今的版本更迭基本上并无伴随什么大的更新。如今不少伪高端用户就会成天追着第三方编译版本赶忙跟进版本号,可是其实真正的意义并不大。

多亏了Chrome的“提携”,今年Firefox也在猛刷版本号,年初仍是3.x,如今正式版已是7.0.1,每夜版已经到了10.0。Opera积累了多年才到11.50,测试版是12.0。IE的正式版是9,平台预览版是10。

六、查看源代码、开发者工具

通常来讲,查看源代码和使用开发者工具是比较实用的,普通用户可能用的机会并很少,可是在判断一些问题的时候实际上是颇有用的。经过查看源代码或者使用开发者工具,能够大体了解这些网站里面的一些元素或者加载的脚本或者是规则,对于判断兼容性问题有必定的帮助,也能够用来准确捕捉页面元素。

相关文章
相关标签/搜索