目前主流的四大浏览器内核Trident、Gecko、WebKit以及Presto
瀏覽器最重要或者說(shuō)核心的部分是“Rendering Engine”,可大概譯為“渲染引擎”,不過(guò)我們一般習(xí)慣將之稱為“瀏覽器內(nèi)核”。負(fù)責(zé)對(duì)網(wǎng)頁(yè)語(yǔ)法的解釋(如標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言下的一個(gè)應(yīng)用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)核的瀏覽器里的渲染(顯示)效果也可能不同,這也是網(wǎng)頁(yè)編寫(xiě)者需要在不同內(nèi)核的瀏覽器中測(cè)試網(wǎng)頁(yè)顯示效果的原因。
內(nèi)核分類(lèi)
Trident
Trident(IE內(nèi)核):該內(nèi)核程序在1997年的IE4中首次被采用,是微軟在Mosaic代碼的基礎(chǔ)之上修改而來(lái)的,并沿用到IE11,也被普遍稱作”IE內(nèi)核”。Trident實(shí)際上是一款開(kāi)放的內(nèi)核,其接口內(nèi)核設(shè)計(jì)的相當(dāng)成熟,因此才有許多采用IE內(nèi)核而非IE的瀏覽器(殼瀏覽器)涌現(xiàn)。
由于IE本身的“壟斷性”(雖然名義上IE并非壟斷,但實(shí)際上,特別是從Windows 95年代一直到XP初期,就市場(chǎng)占有率來(lái)說(shuō)IE的確借助Windows的東風(fēng)處于“壟斷”的地位)而使得Trident內(nèi)核的長(zhǎng)期一家獨(dú)大,微軟很長(zhǎng)時(shí)間都并沒(méi)有更新Trident內(nèi)核,這導(dǎo)致了兩個(gè)后果——一是Trident內(nèi)核曾經(jīng)幾乎與W3C標(biāo)準(zhǔn)脫節(jié)(2005年),二是Trident內(nèi)核的大量 Bug等安全性問(wèn)題沒(méi)有得到及時(shí)解決,然后加上一些致力于開(kāi)源的開(kāi)發(fā)者和一些學(xué)者們公開(kāi)自己認(rèn)為IE瀏覽器不安全的觀點(diǎn),也有很多用戶轉(zhuǎn)向了其他瀏覽器,Firefox和Opera就是這個(gè)時(shí)候興起的。非Trident內(nèi)核瀏覽器的市場(chǎng)占有率大幅提高也致使許多網(wǎng)頁(yè)開(kāi)發(fā)人員開(kāi)始注意網(wǎng)頁(yè)標(biāo)準(zhǔn)和非IE瀏覽器的瀏覽效果問(wèn)題。
補(bǔ)充:IE從版本11開(kāi)始,初步支持WebGL技術(shù)。IE8的JavaScript引擎是Jscript,IE9開(kāi)始用Chakra,這兩個(gè)版本區(qū)別很大,Chakra無(wú)論是速度和標(biāo)準(zhǔn)化方面都很出色。
Trident內(nèi)核的常見(jiàn)瀏覽器有:[1]?? IE6、IE7、IE8(Trident 4.0)、IE9(Trident 5.0)、IE10(Trident 6.0);[1]??360安全瀏覽器(1.0-5.0為T(mén)rident,6.0為T(mén)rident+Webkit,7.0為T(mén)rident+Blink)獵豹極輕瀏覽器,360極速瀏覽器(7.5之前為T(mén)rident+Webkit,7.5為T(mén)rident+Blink)獵豹安全瀏覽器(1.0-4.2版本為T(mén)rident+Webkit,4.3及以后版本為T(mén)rident+Blink)獵豹極輕瀏覽器,傲游瀏覽器(傲游1.x、2.x為IE內(nèi)核,3.x為IE與Webkit雙核)、百度瀏覽器(早期版本)、世界之窗瀏覽器[2]?(最初為IE內(nèi)核,2013年采用Chrome+IE內(nèi)核)、2345瀏覽器、騰訊TT、淘寶瀏覽器、采編讀瀏覽器、搜狗高速瀏覽器(1.x為T(mén)rident,2.0及以后版本為T(mén)rident+Webkit)、阿云瀏覽器(早期版本)、瑞星安全瀏覽器、Slim Browser、 GreenBrowser、愛(ài)帆瀏覽器(12 之前版本)、115瀏覽器、155瀏覽器、閃游瀏覽器、N氧化碳瀏覽器、糖果瀏覽器、彩虹瀏覽器、瑞影瀏覽器、勇者無(wú)疆瀏覽器、114瀏覽器、螞蟻瀏覽器、飛騰瀏覽器、速達(dá)瀏覽器、佐羅瀏覽器、海豚瀏覽器(iPhone/iPad/Android)、UC瀏覽器(Blink內(nèi)核+Trident內(nèi)核)等。
其中部分瀏覽器的新版本是“雙核”甚至是“多核”,其中一個(gè)內(nèi)核是Trident,然后再增加一個(gè)其他內(nèi)核。國(guó)內(nèi)的廠商一般把其他內(nèi)核叫做“高速瀏覽模式”,而Trident則是“兼容瀏覽模式”,用戶可以來(lái)回切換。
Gecko
Gecko(Firefox內(nèi)核):Netscape6開(kāi)始采用的內(nèi)核,后來(lái)的Mozilla FireFox(火狐瀏覽器) 也采用了該內(nèi)核,Gecko的特點(diǎn)是代碼完全公開(kāi),因此,其可開(kāi)發(fā)程度很高,全世界的程序員都可以為其編寫(xiě)代碼,增加功能。因?yàn)檫@是個(gè)開(kāi)源內(nèi)核,因此受到許多人的青睞,Gecko內(nèi)核的瀏覽器也很多,這也是Gecko內(nèi)核雖然年輕但市場(chǎng)占有率能夠迅速提高的重要原因。
事實(shí)上,Gecko引擎的由來(lái)跟IE不無(wú)關(guān)系,前面說(shuō)過(guò)IE沒(méi)有使用W3C的標(biāo)準(zhǔn),這導(dǎo)致了微軟內(nèi)部一些開(kāi)發(fā)人員的不滿;他們與當(dāng)時(shí)已經(jīng)停止更新了的 Netscape的一些員工一起創(chuàng)辦了Mozilla,以當(dāng)時(shí)的Mosaic內(nèi)核為基礎(chǔ)重新編寫(xiě)內(nèi)核,于是開(kāi)發(fā)出了Gecko。不過(guò)事實(shí)上,Gecko 內(nèi)核的瀏覽器仍然還是Firefox (火狐) 用戶最多,所以有時(shí)也會(huì)被稱為Firefox內(nèi)核。此外Gecko也是一個(gè)跨平臺(tái)內(nèi)核,可以在Windows、 BSD、Linux和Mac OS X中使用。
補(bǔ)充:JavaScript引擎是SpiderMonkey。
Gecko內(nèi)核常見(jiàn)的瀏覽器:[1]??Mozilla Firefox、Mozilla SeaMonkey、waterfox(Firefox的64位開(kāi)源版)、Iceweasel、Epiphany(早期版本)、Flock(早期版本)、K-Meleon
Presto
Presto(Opera前內(nèi)核) (已廢棄): Opera12.17及更早版本曾經(jīng)采用的內(nèi)核,現(xiàn)已停止開(kāi)發(fā)并廢棄,該內(nèi)核在2003年的Opera7中首次被使用,該款引擎的特點(diǎn)就是渲染速度的優(yōu)化達(dá)到了極致,然而代價(jià)是犧牲了網(wǎng)頁(yè)的兼容性。
實(shí)際上這是一個(gè)動(dòng)態(tài)內(nèi)核,與前面幾個(gè)內(nèi)核的最大的區(qū)別就在腳本處理上,Presto有著天生的優(yōu)勢(shì),頁(yè)面的全部或者部分都能夠在回應(yīng)腳本事件時(shí)等情況下被重新解析。此外該內(nèi)核在執(zhí)行Javascrīpt的時(shí)候有著最快的速度,根據(jù)在同等條件下的測(cè)試,Presto內(nèi)核執(zhí)行同等Javascrīpt所需的時(shí)間僅有Trident和Gecko內(nèi)核的約1/3(Trident內(nèi)核最慢,不過(guò)兩者相差沒(méi)有多大),本文的其中一個(gè)修改者認(rèn)為上述測(cè)試信息過(guò)于老舊且不完整,因?yàn)樗鲞^(guò)的小測(cè)試顯示Presto部分快部分慢,各內(nèi)核總體相當(dāng)。那次測(cè)試的時(shí)候因?yàn)锳pple機(jī)的硬件條件和普通PC機(jī)不同所以沒(méi)有測(cè)試WebCore內(nèi)核。只可惜Presto是商業(yè)引擎,使用Presto的除開(kāi)Opera以外,只剩下NDSBrowser、Wii Internet Channle、Nokia 770網(wǎng)絡(luò)瀏覽器等,這很大程度上限制了Presto的發(fā)展。
Opera現(xiàn)已改用Google Chrome的Blink內(nèi)核。
Webkit
Webkit(Safari內(nèi)核,Chrome內(nèi)核原型,開(kāi)源):它是蘋(píng)果公司自己的內(nèi)核,也是蘋(píng)果的Safari瀏覽器使用的內(nèi)核。 Webkit引擎包含WebCore排版引擎及JavaScriptCore解析引擎,均是從KDE的KHTML及KJS引擎衍生而來(lái),它們都是自由軟件,在GPL條約下授權(quán),同時(shí)支持BSD系統(tǒng)的開(kāi)發(fā)。所以Webkit也是自由軟件,同時(shí)開(kāi)放源代碼。在安全方面不受IE、Firefox的制約,所以Safari瀏覽器在國(guó)內(nèi)還是很安全的。
限于Mac OS X的使用不廣泛和Safari瀏覽器曾經(jīng)只是Mac OS X的專(zhuān)屬瀏覽器,這個(gè)內(nèi)核本身應(yīng)該說(shuō)市場(chǎng)范圍并不大;但似乎根據(jù)最新的瀏覽器調(diào)查表明,該瀏覽器的市場(chǎng)甚至已經(jīng)超過(guò)了Opera的Presto了——當(dāng)然這一方面得益于蘋(píng)果轉(zhuǎn)到x86架構(gòu)之后的人氣暴漲,另外也是因?yàn)镾afari 3終于推出了Windows版的緣故吧。Mac下還有OmniWeb、Shiira等人氣很高的瀏覽器。
Google Chrome、360極速瀏覽器以及搜狗高速瀏覽器高速模式也使用Webkit作為內(nèi)核(在腳本理解方面,Chrome使用自己研發(fā)的V8引擎)。WebKit 內(nèi)核在手機(jī)上的應(yīng)用也十分廣泛,例如 Google 的手機(jī) Gphone、 Apple 的iPhone, Nokia’s Series 60 browser 等所使用的 Browser 內(nèi)核引擎,都是基于 WebKit。
WebKit內(nèi)核常見(jiàn)的瀏覽器:傲游瀏覽器3、[1]??Apple Safari?(Win/Mac/iPhone/iPad)、Symbian手機(jī)瀏覽器、Android 默認(rèn)瀏覽器,
Blink
產(chǎn)品簡(jiǎn)介
Blink是一個(gè)由Google和Opera Software開(kāi)發(fā)的瀏覽器排版引擎,Google計(jì)劃將這個(gè)渲染引擎作為Chromium計(jì)劃的一部分,并且在2013年4月的時(shí)候公布了這一消息。這一渲染引擎是開(kāi)源引擎WebKit中WebCore組件的一個(gè)分支,并且在Chrome(28及往后版本)、Opera(15及往后版本)和Yandex瀏覽器中使用。
相關(guān)新聞
2013年4月3日,谷歌在Chromium Blog上發(fā)表博客[3]??,稱將與蘋(píng)果的開(kāi)源瀏覽器核心Webkit分道揚(yáng)鑣,在Chromium項(xiàng)目中研發(fā)Blink渲染引擎(即瀏覽器核心),內(nèi)置于Chrome瀏覽器之中。
蘋(píng)果在Safari中采用Webkit核心,并于2005年將Webkit公開(kāi)為開(kāi)源軟件。谷歌當(dāng)時(shí)采用蘋(píng)果的Webkit核心打造了Chrome瀏覽器。Opera也宣布稱將會(huì)轉(zhuǎn)向Webkit核心,但是谷歌宣布此舉后,Opera表示將會(huì)跟隨谷歌采用其Blink瀏覽器核心,同時(shí)參與了Blink的開(kāi)發(fā)。
谷歌轉(zhuǎn)向研發(fā)Blink瀏覽器內(nèi)核意義重大,谷歌此舉欲降低Webkit即蘋(píng)果在瀏覽器市場(chǎng)的影響力。截止2012年底,Webkit瀏覽器內(nèi)核占總瀏覽器市場(chǎng)份額約40%。谷歌解釋稱,Chromium多處理架構(gòu)系統(tǒng)與其他Webkit瀏覽器很不相同。谷歌工程師Adam Barth在博客[3]??中表示,隨著瀏覽器的發(fā)展,蘋(píng)果的Webkit已經(jīng)不能滿足用戶需求,同時(shí)也有礙瀏覽器技術(shù)的創(chuàng)新步伐。但是他也表示,谷歌自主研發(fā)Blink內(nèi)核絕非易事,但是新內(nèi)核將會(huì)提升整個(gè)開(kāi)源網(wǎng)絡(luò)生態(tài)系統(tǒng)的機(jī)能。谷歌做出此舉之際,Mozilla與三星也達(dá)成合作協(xié)議開(kāi)發(fā)“下一代”瀏覽器渲染引擎Servo。
?
與50位技術(shù)專(zhuān)家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的目前主流的四大浏览器内核Trident、Gecko、WebKit以及Presto的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 恒洁智能马桶在不通电的情况下总是按了以后
- 下一篇: 自制盐水鸡的做法(盐水鸡的正宗做法)