贊助商

欄目分類(lèi)

贊助商

大家感興趣的文章

搜索

    瀏覽器內(nèi)核是什么東西 瀏覽器內(nèi)核知識(shí)你知多少

    作者:admin    時(shí)間:2011-11-20 23:50:1    瀏覽:
    • 我們每天上網(wǎng)都離不開(kāi)瀏覽器,但是你可能不會(huì)關(guān)心到瀏覽器內(nèi)核的問(wèn)題。瀏覽器的性能差異,與其使用的內(nèi)核不無(wú)關(guān)系。今天,我們就來(lái)充實(shí)一下自己,了解了解有關(guān)瀏覽器內(nèi)核的知識(shí)吧。

      瀏覽器內(nèi)核是什么東西

      首先解釋一下瀏覽器內(nèi)核是什么東西。英文叫做:Rendering Engine,中文翻譯很多,排版引擎、解釋引擎、渲染引擎,現(xiàn)在流行稱(chēng)為瀏覽器內(nèi)核,至于為什么流行這么稱(chēng)呼,請(qǐng)自行領(lǐng)悟。

      Rendering Engine,顧名思義,就是用來(lái)渲染網(wǎng)頁(yè)內(nèi)容的,將網(wǎng)頁(yè)的代碼轉(zhuǎn)換為最終你看得見(jiàn)的頁(yè)面。因?yàn)槭桥虐妫钥隙〞?huì)排版錯(cuò)位等問(wèn)題。為什么會(huì)排版錯(cuò)位呢?有的是由于網(wǎng)站本身編寫(xiě)不規(guī)范,有的是由于瀏覽器本身的渲染不標(biāo)準(zhǔn)。

      現(xiàn)在有幾個(gè)主流的排版引擎,因?yàn)檫@些排版引擎都有其代表的瀏覽器,所以常常會(huì)把排版引擎的名稱(chēng)和瀏覽器的名稱(chēng)混用,比如常的說(shuō)IE內(nèi)核、Chrome內(nèi)核。其實(shí)這樣子是不太合理的,因?yàn)橐粋€(gè)完整的瀏覽器不會(huì)只有一的排版引擎,還有自己的界面框架和其它的功能支撐,而排版引擎本身也不可能實(shí)現(xiàn)瀏覽器的所有功能。

      下面羅列一下幾款主流的排版引擎和瀏覽器。

      1、Trident 內(nèi)核(Windows)

      Trident 就是大名鼎鼎的 IE瀏覽器 所使用的內(nèi)核,也是很多瀏覽器所使用的內(nèi)核,通常被稱(chēng)為IE內(nèi)核?;赥rident內(nèi)核的瀏覽器非常多,這是因?yàn)門(mén)rident內(nèi)核提供了豐富的調(diào)用接口。老的Trident內(nèi)核(比如常說(shuō)的IE6內(nèi)核)一直是不遵循W3C標(biāo)準(zhǔn)的,但是由于當(dāng)時(shí)IE6的市場(chǎng)份額最大,所以后果就是大量的網(wǎng)頁(yè)專(zhuān)門(mén)為IE6等老Trident內(nèi)核編寫(xiě),在IE6下顯示很正常,但其實(shí)這些網(wǎng)頁(yè)的代碼并不符合W3C標(biāo)準(zhǔn),于是,完全依據(jù)W3C標(biāo)準(zhǔn)寫(xiě)的網(wǎng)頁(yè)在老的Trident內(nèi)核下面又出現(xiàn)偏差,這就是為什么很多人覺(jué)得后來(lái)的IE9的網(wǎng)頁(yè)排版有時(shí)會(huì)亂了,而IE6則正常,其實(shí)不是瀏覽器兼容性差了,而是你訪(fǎng)問(wèn)的網(wǎng)頁(yè)不符合新的標(biāo)準(zhǔn)。目前可供調(diào)用的最新版的Trident內(nèi)核是IE9所用的內(nèi)核,相較之前的版本對(duì)W3C標(biāo)準(zhǔn)的支持增強(qiáng)了很多。

       

      IE瀏覽器使用Trident 內(nèi)核

      Trident內(nèi)核的常見(jiàn)瀏覽器有:

      IE6、IE7、IE8(Trident 4.0)、IE9(Trident 5.0)、IE10(Trident 6.0);

      世界之窗、 360安全瀏覽器、傲游;搜狗瀏覽器;騰訊TT;阿云瀏覽器(早期版本)、百度瀏覽器(早期版本)、瑞星安全瀏覽器、Slim Browser; GreenBrowser、愛(ài)帆瀏覽器(12 之前版本)、115瀏覽器、155瀏覽器; 閃游瀏覽器、N氧化碳瀏覽器、糖果瀏覽器、彩虹瀏覽器、瑞影瀏覽器、勇者無(wú)疆瀏覽器、114瀏覽器、螞蟻瀏覽器、飛騰瀏覽器、速達(dá)瀏覽器、佐羅瀏覽器;

      其中部分瀏覽器的新版本是“雙核”甚至是“多核”,其中一個(gè)內(nèi)核是Trident,然后再增加一個(gè)其他內(nèi)核。國(guó)內(nèi)的廠商一般把其他內(nèi)核叫做“高速瀏覽模式”,而Trident則是“兼容瀏覽模式”,用戶(hù)可以來(lái)回切換。

      2、Gecko(跨平臺(tái))

      Netscape6 啟用的內(nèi)核,現(xiàn)在主要由Mozilla基金會(huì)進(jìn)行維護(hù),是開(kāi)源的瀏覽器內(nèi)核,目前最主流的Gecko內(nèi)核瀏覽器是Mozilla Firefox,所以也常常稱(chēng)之為火狐內(nèi)核。因?yàn)镕irefox的出現(xiàn),IE的霸主地位逐步被削弱,Chrome的出現(xiàn)則是加速了這個(gè)進(jìn)程。非Trident內(nèi)核的興起正在改變著整個(gè)互聯(lián)網(wǎng),最直接的就是推動(dòng)了編碼的標(biāo)準(zhǔn)化,也使得微軟在競(jìng)爭(zhēng)壓力下不得不改進(jìn)IE。不過(guò)比較可惜的是,雖然是開(kāi)源的,也開(kāi)發(fā)了這么多年,基于Gecko的瀏覽器并不多見(jiàn),除了一些簡(jiǎn)單的改動(dòng)(坑爹的X瀏覽器)或者是重新編譯(綾川ayakawa、tete009),深度定制或者增強(qiáng)型外殼的還比較少見(jiàn)。另外就是有一些其它軟件借用了Gecko內(nèi)核,比如音樂(lè)管理軟件SongBird。

      常見(jiàn)的Gecko內(nèi)核的瀏覽器:Mozilla Firefox、Mozilla SeaMonkey、Epiphany(早期版本)、Flock(早期版本)、K-Meleon。

      Gecko內(nèi)核的瀏覽器:Mozilla Firefox

      3、KHTML(Linux)

      KDE開(kāi)發(fā)的內(nèi)核,速度快捷,容錯(cuò)度低。這個(gè)內(nèi)核可能不見(jiàn)得很多人知道,但是后面再看下去你就明白了。常見(jiàn)的KHTML內(nèi)核的瀏覽器:Konqueror。

      4、WebKit(跨平臺(tái))

      由KHTML發(fā)展而來(lái),也是蘋(píng)果給開(kāi)源世界的一大貢獻(xiàn)。是目前最火熱的瀏覽器內(nèi)核,火熱倒不是說(shuō)市場(chǎng)份額,而是應(yīng)用的面積和勢(shì)頭。因?yàn)槭敲撎ビ贙HTML,所以也是具有高速的特點(diǎn),同樣遵循W3C標(biāo)準(zhǔn)。從目前看來(lái),WebKit 內(nèi)核是最有潛力而且是已經(jīng)有相當(dāng)成績(jī)的新興內(nèi)核,性能非常好,而且對(duì)W3C標(biāo)準(zhǔn)的支持很完善,本人非常看好它。

      常見(jiàn)的WebKit內(nèi)核的瀏覽器:Apple Safari (Win/Mac/iPhone/iPad)、Symbian手機(jī)瀏覽器、Android 默認(rèn)瀏覽器。

      5、Chromium(跨平臺(tái))

      其實(shí) Chromium 就是 WebKit,維基百科里面并沒(méi)有將Chromium從WebKit分出來(lái),這個(gè)區(qū)分完全是基于我個(gè)人的惡趣味。記得以前看過(guò)一個(gè)大牛的博文說(shuō)過(guò),Chromium把WebKit的代碼梳理得可讀性提高很多,所以以前可能需要一天進(jìn)行編譯的代碼,現(xiàn)在只要兩個(gè)小時(shí)就能搞定。這個(gè)我自己也沒(méi)有考究過(guò),但是估計(jì)可信。這個(gè)也能解釋為什么Gecko和WebKit出來(lái)了這么久,第三方編譯、定制的版本并不多,但是由Chromium衍生出來(lái)的瀏覽器早就滿(mǎn)坑滿(mǎn)谷了。

      常見(jiàn)的Chromium內(nèi)核的瀏覽器:Google Chrome、Chromium、SRWare Iron、Comodo Dragon。

       

      Google Chrome瀏覽器內(nèi)核是Chromium

      6、Presto(跨平臺(tái))

      Opera 所采用的內(nèi)核,準(zhǔn)確地說(shuō),是Opera 7.0及以后版本的內(nèi)核,Opera 3.5-6.1版本使用的內(nèi)核叫做Elektra。不用說(shuō),Presto對(duì)W3C標(biāo)準(zhǔn)的支持也是很良好的。雖然我很喜歡Opera,但是我對(duì)Presto的渲染速度一直有保留態(tài)度。之前在OperaChina論壇看見(jiàn)有人說(shuō)過(guò),Presto優(yōu)先解析文字,保證可閱讀性,媒體資源的渲染放后。常見(jiàn)的Presto內(nèi)核的瀏覽器:Opera。

      二、JavaScript引擎

      說(shuō)完了排版引擎,接下來(lái)說(shuō)說(shuō) JavaScript 引擎。顧名思義,JavaScript引擎就是用來(lái)執(zhí)行JS代碼的。譬如說(shuō),一個(gè)算圓周率的網(wǎng)頁(yè),排版引擎把頁(yè)面的框架給顯示出來(lái)了,但最終的結(jié)果需要用到 Javascript 來(lái)計(jì)算,所以Javascript引擎的快慢也是對(duì)整個(gè)網(wǎng)頁(yè)的速度有著很大影響,特別是目前越來(lái)越多類(lèi)似 WebQQ、Gmail 等大量應(yīng)用了復(fù)雜的 Javascript 運(yùn)算的網(wǎng)站,不同的引擎最終的速度差異會(huì)相當(dāng)大。

      為什么要單獨(dú)拿出來(lái)說(shuō)呢?因?yàn)樗€涉及到跑分。經(jīng)常看見(jiàn)很多文章在報(bào)道說(shuō)哪個(gè)瀏覽器更快,其實(shí)大部分說(shuō)的就是JavaScript的渲染速度,而不是頁(yè)面的載入速度。在網(wǎng)速許可的情況下,其實(shí)各個(gè)瀏覽器的頁(yè)面載入速度差別不大(Opera遜色一些)。那是不是說(shuō)對(duì)比JavaScript的渲染速度其實(shí)沒(méi)有意義?也不是這么說(shuō),因?yàn)楝F(xiàn)在JavaScript在頁(yè)面中的比重會(huì)越來(lái)越大,越來(lái)越多的動(dòng)態(tài)頁(yè)面開(kāi)始大量借助JavaScript,比如現(xiàn)在主流的SNS、郵箱、網(wǎng)頁(yè)游戲,所以JavaScript的渲染速度也是一個(gè)很重要的指標(biāo)。JavaScript的渲染速度越快,動(dòng)態(tài)頁(yè)面的展示也越快。Opera在JavaScript引擎的跑分上面一直都是很牛逼的,一般來(lái)說(shuō)最新測(cè)試版之間PK,Opera基本都會(huì)奪冠。

      1、Chakra 查克拉,IE9啟用的新的JavaScript引擎。

      2、SpiderMonkey / TraceMonkey / JaegerMonkey

      SpiderMonkey應(yīng)用在Mozilla Firefox 1.0-3.0,TraceMonkey應(yīng)用在Mozilla Firefox 3.5-3.6版本,JaegerMonkey應(yīng)用在Mozilla Firefox 4.0及后續(xù)的版本。

      3、V8 應(yīng)用于Chrome、傲游3。

      4、Nitro 應(yīng)用于Safari 4及后續(xù)的版本。

      5、Linear A/Linear B/Futhark/Carakan

      Linear A應(yīng)用于Opera 4.0-6.1版本,Linear B應(yīng)用于Opera 7.0~9.2版本,F(xiàn)uthark應(yīng)用于Opera 9.5-10.2版本,Carakan應(yīng)用于Opera 10.5及后續(xù)的版本。

      6、KJS KHTML對(duì)應(yīng)的JavaScript引擎。

      三、幾個(gè)與瀏覽器有關(guān)的測(cè)試項(xiàng)目

      1、V8引擎 測(cè)試傳送門(mén),現(xiàn)在很多“雙核”瀏覽器都用它來(lái)跑分測(cè)試JavaScript引擎,分?jǐn)?shù)越高越好。

      2、Acid3 測(cè)試傳送門(mén),這個(gè)主要是對(duì)網(wǎng)頁(yè)標(biāo)準(zhǔn)的兼容性測(cè)試,分?jǐn)?shù)越高表示越符合網(wǎng)頁(yè)的開(kāi)發(fā)標(biāo)準(zhǔn),滿(mǎn)分是100分。

      3、HTML5 測(cè)試傳送門(mén),測(cè)試瀏覽器對(duì)HTML5標(biāo)準(zhǔn)的支持,分?jǐn)?shù)越高越好。

      四、幾個(gè)奇葩

      1、IETab

      這是一款瀏覽器擴(kuò)展,并非內(nèi)核。在沒(méi)有第三方編譯版本的時(shí)候,IETab一直是 Mozilla Firefox、Chrome等非Trident內(nèi)核的瀏覽器的安裝量最大的擴(kuò)展之一,方便用戶(hù)在不開(kāi)啟IE的情況下調(diào)用Trident內(nèi)核訪(fǎng)問(wèn)一些兼容性比較差的網(wǎng)站。

      2、Trident/Gecko雙核瀏覽器

      雖然IETab能實(shí)現(xiàn)部分需求,但是深度訂制的畢竟還是不一樣,所以Trident/Gecko雙核瀏覽器就誕生了,Sleipnir、Avant 12(Orca)是這類(lèi)里面比較常見(jiàn)的。Avant 12因?yàn)橛蠴rca的前期積累,所以輕車(chē)熟路,后面還打算加入Chromium,變成三核瀏覽器,但是偏偏現(xiàn)在Mozilla Firefox和Chrome都在瘋狂刷版本號(hào),肯定有一部分精力要花在跟進(jìn)版本上。

      3、Trident/WebKit雙核瀏覽器

      現(xiàn)在國(guó)內(nèi)最主流的“雙核”瀏覽器基本都是這個(gè)架構(gòu),360極速瀏覽器、世界之窗瀏覽器極速版、傲游3、搜狗瀏覽器、QQ瀏覽器、楓樹(shù)瀏覽器、快快瀏覽器、百度瀏覽器、阿云瀏覽器(后期版本)、太陽(yáng)花瀏覽器,其中最奇葩的是傲游3。其它雙核瀏覽器都是基于Chromium的,而傲游是基于WebKit的,但是偏偏又用的是V8引擎。

      4、Trident/Gecko/WebKit三核瀏覽器

      目前能見(jiàn)的應(yīng)該就是日本的Lunascape,Avant增加了WebKit內(nèi)核之后也會(huì)歸類(lèi)到這里。說(shuō)實(shí)話(huà),Lunascape真的很難用,真的很奇葩。各個(gè)內(nèi)核相對(duì)獨(dú)立,外殼本身不夠強(qiáng)化,穩(wěn)定性不高,所以還不如用回單核瀏覽器。

      五、幾個(gè)小點(diǎn)

      1、Chrome/Chromium

      很多人都會(huì)說(shuō)自己用的雙核瀏覽器是Chrome/IE雙核的,或者說(shuō)是基于Chrome的。其實(shí)這種說(shuō)法并不正確,因?yàn)镃hrome本身并不開(kāi)源,其它廠商是不能去定制Chrome的。能被修改、定制的是Chromium,Chrome的開(kāi)源開(kāi)發(fā)版本,代碼和Build都提供下載。Chromium/Chrome兩個(gè)單詞都是鉻,分別是拉丁文和英文,除了名字之外,很有很多不同,你可以自己對(duì)比一下。Chromium一天最多可以更新十幾二十個(gè)版本,實(shí)驗(yàn)性的新特性都會(huì)現(xiàn)在這里放出,但是Chromium本身其實(shí)并不穩(wěn)定。Chrome總共有四個(gè)更新分支:Canary、Dev、Beta、Stable,穩(wěn)定性依次增強(qiáng)。

      2、MyIE、MyIE2、傲游、GreenBrowser 自行搜索,一段歷史。

      3、頁(yè)面兼容性判斷

      在確保IE瀏覽器沒(méi)有損壞的基礎(chǔ)上,搭配一款非Trident內(nèi)核的瀏覽器進(jìn)行判斷,如果可以的話(huà),最好所有內(nèi)核都配齊了。控制變量就能找到問(wèn)題所在,是瀏覽器本身的問(wèn)題,還是頁(yè)面編碼有問(wèn)題。對(duì)于用戶(hù)來(lái)說(shuō)就能更好地去選擇自己該用什么瀏覽器訪(fǎng)問(wèn)什么頁(yè)面,對(duì)于開(kāi)發(fā)者來(lái)說(shuō)應(yīng)該要寫(xiě)出無(wú)差別代碼。

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

      Opera其實(shí)很好看也很好用,而且極度創(chuàng)新(貌似全頁(yè)面縮放、多標(biāo)簽瀏覽、鼠標(biāo)手勢(shì)、快速撥號(hào)等功能都是它首創(chuàng)的),但是市場(chǎng)占有率一直很低。很多很好用的新特性總是被抄襲,所以大家笑稱(chēng)Opera“一直被模仿,一直被超越”。坊間傳聞多標(biāo)簽頁(yè)瀏覽器就是Opera發(fā)明的,但是貌似有人考究了這個(gè)傳聞其實(shí)不屬實(shí)。不過(guò)快速撥號(hào)、Turbo瀏覽等功能就是扎扎實(shí)實(shí)Opera首創(chuàng)的。你可以不用Opera,但是你會(huì)損失很多樂(lè)趣。

      5、這年頭流行刷版本號(hào)

      現(xiàn)在版本號(hào)最高的瀏覽器是Chrome,穩(wěn)定版的版本號(hào)是14,也是現(xiàn)在主流瀏覽器里面誕生時(shí)間最短的,真是一個(gè)刷版本號(hào)高手。早期的Chrome版本更迭還會(huì)增加一些比較重要的新特性,比如擴(kuò)展支持,現(xiàn)在的版本更迭基本上并沒(méi)有伴隨什么大的更新?,F(xiàn)在很多偽高端用戶(hù)就會(huì)整天追著第三方編譯版本趕緊跟進(jìn)版本號(hào),但是其實(shí)真正的意義并不大。
      多虧了Chrome的“提攜”,今年Firefox也在猛刷版本號(hào),年初還是3.x,現(xiàn)在正式版已經(jīng)是7.0.1,每夜版已經(jīng)到了10.0。Opera積累了多年才到11.50,測(cè)試版是12.0。IE的正式版是9,平臺(tái)預(yù)覽版是10。

      6、查看源代碼、開(kāi)發(fā)者工具

      一般來(lái)說(shuō),查看源代碼和使用開(kāi)發(fā)者工具是比較實(shí)用的,普通用戶(hù)可能用的機(jī)會(huì)并不多,但是在判斷一些問(wèn)題的時(shí)候其實(shí)是很有用的。通過(guò)查看源代碼或者使用開(kāi)發(fā)者工具,可以大致了解這些網(wǎng)站里面的一些元素或者加載的腳本或者是規(guī)則,對(duì)于判斷兼容性問(wèn)題有一定的幫助,也可以用來(lái)準(zhǔn)確捕捉頁(yè)面元素。

      原文地址:http://www.iplaysoft.com/browsers-engine.html

      相關(guān)鏈接

      IE 9、Firefox 4、Chrome 11、Safari 5 四大瀏覽器速度測(cè)試對(duì)比

      硬件加速已經(jīng)被各大瀏覽器廠商爭(zhēng)相追捧,不同的瀏覽器使用不同的方法來(lái)實(shí)現(xiàn)硬件加速,因此它們的表現(xiàn)也不盡相同。今天,我們就來(lái)看看IE、Firefox、Chrome、Safari四大瀏覽器GPU硬件加速的表現(xiàn)能力吧。

      本次測(cè)試使用的是IE Test Drive官方網(wǎng)站上新增的測(cè)試項(xiàng)目“圣誕老人的工作”(Santa's Workshop)。在“圣誕老人的工作”測(cè)試中,頁(yè)面中會(huì)有一個(gè)成績(jī)面板,上面顯示了多少個(gè)小精靈在工作(elves working),他們共收集了多少圣誕禮物(presents packed),這些小精靈每分鐘收集的禮物數(shù)量(presents per minute),在小精靈們收集禮物時(shí)你還可以聽(tīng)到圣誕老人“哈哈”的笑聲。

      。。。

    標(biāo)簽: 瀏覽器  
    x