Win7之家( afsion.com.cn):淺談4種常見(jiàn)的瀏覽器內(nèi)核
瀏覽器最核心的部分是渲染引擎(Rendering Engine),我們一般習(xí)慣稱之為“瀏覽器內(nèi)核”,其負(fù)責(zé)解析網(wǎng)頁(yè)語(yǔ)法(如HTML、JavaScript)并渲染、展示網(wǎng)頁(yè)。因此,所謂的瀏覽器內(nèi)核通常也就是指瀏覽器所采用的渲染引擎,渲染引擎決定了瀏覽器如何顯示網(wǎng)頁(yè)的內(nèi)容以及頁(yè)面的格式信息。不同的瀏覽器內(nèi)核對(duì)網(wǎng)頁(yè)編寫(xiě)語(yǔ)法的解析也有所不同,因此同一網(wǎng)頁(yè)在不同的內(nèi)核瀏覽器里的渲染、展示效果也可能不同。
l 主流瀏覽器內(nèi)核介紹
主流瀏覽器內(nèi)核分類:瀏覽器內(nèi)核種類繁多,商用的加上非商業(yè)的免費(fèi)內(nèi)核,大約有10款以上甚至更多,不過(guò)通常比較常見(jiàn)的大約只有以下4種,下面就簡(jiǎn)單介紹一下。
(1)Trident
Trident(又稱為MSHTML),是微軟的Windows搭載的網(wǎng)頁(yè)瀏覽器——Internet Explorer瀏覽器使用的內(nèi)核(俗稱IE內(nèi)核),該內(nèi)核程序在1997年的IE 4中首次被采用,之后不斷地加入新的技術(shù)并隨著新版本的IE發(fā)布。Trident實(shí)際上是一款開(kāi)放的內(nèi)核,Trident引擎被設(shè)計(jì)成一個(gè)軟件組件(模塊),使得其他軟件開(kāi)發(fā)人員很容易將網(wǎng)頁(yè)瀏覽功能加到他們自行開(kāi)發(fā)的應(yīng)用程序里,其接口內(nèi)核設(shè)計(jì)相當(dāng)成熟,因此才涌現(xiàn)出許多采用IE內(nèi)核而非IE的瀏覽器(如Maxthon、軟媒的閃游瀏覽器、騰訊的TT、GreenBrowser等),但是Trident只能用于Windows平臺(tái)。
由于IE本身的“壟斷性”而使得Trident內(nèi)核在很長(zhǎng)時(shí)間內(nèi)都是一家獨(dú)大,微軟也在相當(dāng)長(zhǎng)一段時(shí)間內(nèi)都沒(méi)有更新Trident內(nèi)核,這就導(dǎo)致了兩個(gè)后果——一是Trident內(nèi)核曾經(jīng)幾乎與W3C標(biāo)準(zhǔn)脫節(jié);二是Trident內(nèi)核的大量Bug等安全性問(wèn)題沒(méi)有得到及時(shí)解決。目前,微軟對(duì)Trident排版引擎做了重大變動(dòng),除了加入新的技術(shù)之外,還增加了對(duì)網(wǎng)頁(yè)標(biāo)準(zhǔn)的支持。盡管這些變動(dòng)已經(jīng)在相當(dāng)大的程度上落后了其他的排版引擎,如Gecko、WebCore、KHTML及Presto。
(2)Gecko
Gecko是開(kāi)放源代碼、以C++編寫(xiě)的網(wǎng)頁(yè)排版引擎,目前被Mozilla家族網(wǎng)頁(yè)瀏覽器以及Netscape 6以后版本瀏覽器所使用。這款軟件原本是由網(wǎng)景通訊公司開(kāi)發(fā)的,現(xiàn)在則由Mozilla基金會(huì)維護(hù)。由于Gecko的特點(diǎn)是代碼完全公開(kāi),因此,其可開(kāi)發(fā)程度很高,全世界的程序員都可以為其編寫(xiě)代碼,增加功能。因?yàn)檫@是個(gè)開(kāi)源內(nèi)核,因此受到許多人的青睞,采用Gecko內(nèi)核的瀏覽器也很多,這也是Gecko內(nèi)核雖然年輕但市場(chǎng)占有率能夠迅速提高的重要原因。
Gecko排版引擎提供了一個(gè)豐富的程序界面以供與互聯(lián)網(wǎng)相關(guān)的應(yīng)用程序使用,例如網(wǎng)頁(yè)瀏覽器、HTML編輯器、客戶端/服務(wù)器等。雖然最初的主要對(duì)象是Mozilla的衍生產(chǎn)品,如Netscape和Mozilla Firefox,但是現(xiàn)在已有很多其他軟件利用這個(gè)排版引擎。此外Gecko也是一個(gè)跨平臺(tái)內(nèi)核,可以在Windows、BSD、Linux和Mac OS X中使用。
Gecko是最流行的排版引擎之一,其流行程度僅次于Trident。使用Gecko引擎的瀏覽器有Firefox、網(wǎng)景6~9、SeaMonkey、Camino、Mozilla、Flock、Galeon、K-Meleon、Minimo、Sleipni、Songbird、XeroBank。Google Gadget引擎采用的就是Gecko瀏覽器引擎。
(3)Presto
Presto是一個(gè)由Opera Software開(kāi)發(fā)的瀏覽器排版引擎,目前Opera 7.0~10.00版本使用該款引擎。Presto的特點(diǎn)就是渲染速度的優(yōu)化達(dá)到了極致,它是目前公認(rèn)的網(wǎng)頁(yè)瀏覽速度最快的瀏覽器內(nèi)核,然而代價(jià)是犧牲了網(wǎng)頁(yè)的兼容性。
Presto實(shí)際上是一個(gè)動(dòng)態(tài)內(nèi)核,與Trident、Gecko等內(nèi)核的最大區(qū)別就在于腳本處理上,Presto有著天生的優(yōu)勢(shì),頁(yè)面的全部或者部分都能夠在回應(yīng)腳本事件時(shí)等情況下被重新解析。此外該內(nèi)核在執(zhí)行JavaScript時(shí)有著最快的速度,根據(jù)同等條件下的測(cè)試,Presto內(nèi)核執(zhí)行同等JavaScript所需的時(shí)間僅有Trident和Gecko內(nèi)核的約1/3。不過(guò),不足之處在于Presto是商業(yè)引擎,使用Presto的除了Opera以外,只剩下NDS Browser、Nokia 770網(wǎng)絡(luò)瀏覽器等,這在很大程度上限制了Presto的發(fā)展。 Opera Widget引擎采用的就是Presto引擎。
(4)WebKit
WebKit 是一個(gè)開(kāi)放源代碼的瀏覽器引擎(Web Browser Engine),WebKit最初的代碼來(lái)自KDE的KHTML和KJS(它們均為開(kāi)放源代碼,都是自由軟件,在GPL協(xié)議下授權(quán))。所以WebKit也是自由軟件,同時(shí)開(kāi)放源代碼。
除了Safari瀏覽器,Mac下還有OmniWeb、Shiira等人氣很高的瀏覽器。Google的chrome也使用WebKit作為內(nèi)核。 WebKit內(nèi)核在手機(jī)上的應(yīng)用也十分廣泛,例如Google的Android平臺(tái)瀏覽器、Apple的iPhone瀏覽器、Nokia S60瀏覽器等所使用的瀏覽器內(nèi)核引擎,都是基于WebKit引擎的。 WebKit內(nèi)核也廣泛應(yīng)用于Widget引擎產(chǎn)品,包括中國(guó)移動(dòng)的BAE、Apple的Dashboard以及Nokia WRT在內(nèi)采用的均為WebKit引擎。
評(píng)論列表
查看所有 條評(píng)論