下面主要介绍一些常见的浏览器内核和JavaScript引擎。部分内容来源于本人在网上查到的资料,部分内容为本人理解,不作任何保证。确实如此,但大致应该是正确的。如有不妥请指正。。。1.浏览器内核(排版引擎/渲染引擎)首先,我先解释一下什么是浏览器内核。英文名是:RenderingEngine,还有很多中文翻译。排版引擎、解释引擎和渲染引擎现在被通俗地称为浏览器内核。至于为什么这么受欢迎,请自行理解。RenderingEngine,顾名思义就是用来渲染网页的内容,将网页的代码转换成最终你能看到的页面。因为是排版,肯定会出现排版错位等问题。为什么排版错位?有的是因为网站本身的写法不规范,有的是因为浏览器本身的渲染不规范。现在有几种主流的排版引擎,因为这些排版引擎都有其代表的浏览器,所以排版引擎的名字往往会和浏览器的名字混在一起,比如IE内核和Chrome内核。其实这是不合理的,因为一个完整的浏览器不会只有一个排版引擎,还会有自己的界面框架等功能支持,而排版引擎本身并不能实现浏览器的所有功能。这里罗列几款主流的排版引擎和浏览器。1.Trident内核(Windows)Trident是著名的IE浏览器使用的内核,也是很多浏览器使用的内核。通常称为IE内核。基于Trident内核的浏览器有很多,因为Trident内核提供了丰富的调用接口。旧的Trident内核(比如通常所说的IE6内核)并没有遵循W3C标准,但由于当时IE6的市场份额最大,导致大量网页专门为旧Trident编写IE6等内核,在IE6下显示正常,但实际上这些网页的代码不符合W3C标准。因此,完全按照W3C标准编写的网页在旧的Trident内核下是有偏差的。这就是为什么很多人认为IE9以后的网页布局有时乱七八糟的原因,而IE6是正常的。其实并不是浏览器兼容性差,而是你访问的网页不符合新标准。目前可供调用的最新版本的Trident内核是IE9使用的内核,相比之前的版本增强了对W3C标准的支持。常见的带有Trident内核的浏览器包括:IE6、IE7、IE8(Trident4.0)、IE9(Trident5.0)、IE10(Trident6.0);世界之窗、360安全浏览器、傲游浏览器;搜狗浏览器;腾讯TT;阿云浏览器(早期版)、百度浏览器(早期版)、瑞星安全浏览器、超薄浏览器;GreenBrowser、爱范浏览器(12之前版本)、115浏览器、155浏览器;Flash浏览器、二氧化碳浏览器、糖果浏览器、彩虹浏览器、瑞影浏览器、勇敢者无国界浏览器、114浏览器、蚂蚁浏览器、飞腾浏览器、速达浏览器、佐罗浏览器;一些浏览器的新版本是“双核”甚至“多核”,其中一个核心是Trident,然后添加一个额外的核心。国内厂商一般称其他内核为“高速浏览模式”,而Trident为“兼容浏览模式”,用户可以来回切换。2、Gecko启用的内核(跨平台)Netscape6现在主要由Mozilla基金会维护。它是一个开源浏览器内核。目前最主流的Gecko内核浏览器是MozillaFirefox,所以也常被称为Firefox内核。因为Firefox的出现,IE的霸主地位逐渐被削弱,而Chrome的出现加速了这个过程。非三叉戟内核的兴起正在改变整个互联网。最直接的是促进了编码的标准化,也让微软迫于竞争压力不得不改进IE。但遗憾的是,虽然是开源的,而且已经发展了这么多年,但是基于Gecko的浏览器并不多见,除了一些简单的改动(作弊的X浏览器)或者重新编译(Ayakawa,tete009),深度定制或增强型炮弹比较少见。此外,还有一些软件借用了Gecko内核,比如音乐管理软件SongBird。常见的Gecko内核浏览器:MozillaFirefox、MozillaSeaMonkey、Epiphany(早期版本)、Flock(早期版本)、K-Meleon3、KHTML(Linux)KDE开发的内核速度快,容错性低。这个内核可能很多人都不知道,但是后面看了你就明白了。常见的KHTML内核浏览器:Konqueror4、WebKit(跨平台)都是从KHTML发展而来,也是Apple对开源世界的一大贡献。是目前最火的浏览器内核。热度不是市场占有率,而是应用领域和势头。因为脱胎于KHTML,所以也有高速的特点,也遵循W3C标准。从目前来看,WebKit内核是最具潜力和成就的新兴内核。它的性能非常好,对W3C标准的支持非常完善。我对此非常乐观。目前发展势头最强的WebKit内核,常见的WebKit内核浏览器:AppleSafari(Win/Mac/iPhone/iPad)、Symbian手机浏览器、Android默认浏览器、5、Chromium(跨平台)其实Chromium就是WebKit。维基百科并未将Chromium与WebKit分开。这种区分完全是基于我个人的不良品味。记得之前看过一个大牛的博文,说Chromium对WebKit的代码进行了整理,使其更具可读性,所以以前可能需要一天才能编译的代码,现在两个小时就可以搞定。我自己没有研究过这个,但这可能是可信的。这也能解释为什么Gecko和WebKit出了这么久,第三方编译定制的版本不多,而Chromium衍生出来的浏览器却早已坑坑洼洼。常见的Chromium内核浏览器:GoogleChrome、Chromium、SRWareIron、ComodoDragon6、Presto(跨平台)Opera使用的内核,准确的说是Opera7.0及之后版本的内核,以及Opera3.5-6.1版本的内核被称为艾丽卡。不用说,Presto对W3C标准的支持也非常好。虽然我很喜欢Opera,但是我一直对Presto的渲染速度有所保留。在OperaChina论坛上看到有人说Presto是先解析文本保证可读性,再渲染媒体资源。Presto内核常见的浏览器:Opera7,其他更多内核可以参考维基百科2.JavaScript引擎说完排版引擎,再来说说JavaScript引擎。顾名思义,JavaScript引擎就是用来执行JS代码的。比如一个计算圆周率的网页,排版引擎显示的是页面的frame,但是最终的结果需要使用Javascript来计算,所以Javascript引擎的速度对整个的速度也有很大的影响网页,尤其是目前像WebQQ、Gmail等网站越来越多,大量使用复杂的Javascript操作,不同引擎的最终速度会有很大差异。为什么要单独拿出来?因为还涉及到跑分。我经常看到很多文章报告哪个浏览器更快。事实上,他们中的大多数人都在谈论JavaScript渲染速度,而不是页面加载速度。在网速允许的情况下,其实各个浏览器的页面加载速度相差不大(Opera稍逊一筹)。那是不是说比较JavaScript的渲染速度就没有意义了呢?那也不是,因为现在JavaScript在页面中的比例会越来越大,越来越多的动态页面会大量使用JavaScript,比如现在主流的SNS、邮箱和网页游戏,所以JavaScript的渲染速度也是一个很重要的因素指标。JavaScript的渲染速度越快,动态页面的显示速度就越快。Opera一直非常擅长运行JavaScript引擎分数。一般来说,Opera会在***beta版本之间的竞争中获得冠军。1.ChakraChakra,IE9启用的新JavaScript引擎。2、SpiderMonkey/TraceMonkey/JaegerMonkeySpiderMonkey用于MozillaFirefox1.0-3.0,TraceMonkey用于MozillaFirefox3.5-3.6,JaegerMonkey用于MozillaFirefox4.0及以后版本。3、V8适用于Chrome、Maxthon3。4、Nitro适用于Safari4及后续版本。5、LinearA/LinearB/Futhark/CarakanLinearA适用于Opera4.0-6.1版本,LinearB适用于Opera7.0-9.2版本,Futhark适用于Opera9.5-10.2版本,Carakan适用于Opera10.5及后续版本。6.KJSKHTML对应的JavaScript引擎。三、浏览器相关的几个测试项目1、V8引擎测试入口,现在很多“双核”浏览器都用它来运行和测试JavaScript引擎。分数越高越好。2、acid3测试入口,这个主要是对网页标准的兼容性测试,分数越高越符合网页开发标准,满分100分。3、HTML5测试入口,测试浏览器对HTML5标准的支持程度,分数越高越好。四、几个精彩1、IETab这是一个浏览器扩展,不是内核。在没有第三方编译版本的情况下,IETab一直是MozillaFirefox、Chrome等非Trident核心浏览器安装最多的扩展之一,方便用户在不打开IE的情况下调用Trident核心访问一些兼容性糟糕的网站。2.Trident/Gecko双核浏览器虽然IETab可以满足一些需求,但深度定制毕竟还是有区别的,所以Trident/Gecko双核浏览器诞生了。Sleipnir和Avant12(Orca)在这一类中更为常见。Avant12因为Orca的前期积累,算是熟悉了道路,未来打算加入Chromium,成为三核浏览器,但现在MozillaFirefox和Chrome都在疯狂刷新版本号,得花点精力关于后续版本。3、Trident/WebKit双核浏览器现在国内最主流的“双核”浏览器基本都采用这种架构,比如360极速浏览器、世界之窗浏览器极速版、傲游3搜狗浏览器3、QQ浏览器、枫叶浏览器、快快浏览器、百度浏览器、阿云浏览器(后期版本)、向日葵浏览器,最牛逼的是Maxthon3。其他双核浏览器都是基于Chromium,而Maxthon是基于WebKit,但是它使用V8引擎。4、Trident/Gecko/WebKit三核浏览器目前应该是日本的Lunascape,加入WebKit内核后归入Avant。说实话,Lunascape真的很难用,真的很奇怪。各个内核相对独立,外壳本身强度不够,稳定性不高,还是用单核浏览器比较好。五、几个小点1.Chrome/Chromium很多人会说自己用的双核浏览器是Chrome/IE双核,或者说是基于Chrome。其实这个说法是不正确的,因为Chrome本身是不开源的,其他厂商无法定制Chrome。可以修改和定制的是Chrome的开源开发版Chromium,code和Build都可以下载。Chromium/铬这两个词都是铬,分别是拉丁文和英文。除了名字,还有很多不同。你可以自己比较一下。Chromium一天最多可以更新十几个或二十个版本,实验性的新特性会在这里发布,但Chromium本身其实并不稳定。Chrome一共有四个更新分支:Canary、Dev、Beta、Stable,稳定性依次增强。2、MyIE、MyIE2、Maxthon、GreenBrowser自行搜索,一段历史。3、页面兼容性判断在保证IE浏览器没有损坏的基础上,使用非Trident内核的浏览器进行判断。如果可能,所有内核都配备齐全。通过控制变量就可以发现问题,到底是浏览器本身的问题,还是页面编码的问题。对于用户来说,他们可以更好地选择应该使用哪种浏览器来访问哪些页面,而对于开发人员来说,他们应该编写无差异化的代码。4.一直被模仿和超越的Opera,其实很好看也很好用,而且极富创新(貌似整页缩放,多标签浏览,鼠标手势,快速拨号和其他功能都是它首创的),但它的市场份额一直很低。很多有用的新功能总是被抄袭,所以大家戏称Opera“一直被模仿,一直被超越”。传言说多标签浏览器是Opera发明的,不过好像有人研究过这个传闻,并不是真的。而快速拨号、Turbo浏览等功能则由Opera扎实开创。你可以不用Opera,但你会失去很多乐趣。5.这几天流行刷新版本号。最新版本号的浏览器是Chrome,稳定版本号是14,也是主流浏览器中诞生时间最短的。真是版本号高手。早期的Chrome版本变化也会增加一些更重要的新特性,比如扩展支持,而目前的版本变化基本上没有伴随任何重大更新。现在很多伪高端用户会整天追着第三方编译的版本去追版本号,但实际意义不是很大。得益于Chrome的“加持”,Firefox今年也在更换版本号。年初是3.x,现在正式版是7.0.1,nightly版已经到了10.0。Opera经过多年积累才到11.50,测试版是12.0。IE正式版是9,平台预览版是10。6.查看源码和开发者工具一般来说,查看源码和使用开发者工具是比较实用的,普通用户使用的机会可能不多,但是在判断一些问题的时候其实是非常有用的。通过查看源代码或使用开发者工具,可以对这些网站中的一些元素或加载的脚本或规则有一个大概的了解,有助于判断兼容性问题,也可用于准确抓取页面元素。
