摘要:所有網(wǎng)頁(yè)瀏覽器電子郵件客戶端以及其它需要根據(jù)表示性的標(biāo)記語(yǔ)言來(lái)顯示內(nèi)容的應(yīng)用程序都需要排版引擎。瀏覽器內(nèi)核現(xiàn)時(shí)主要的四大排版引擎為應(yīng)用于應(yīng)用于應(yīng)用于應(yīng)用于和早期版本的。主要的網(wǎng)頁(yè)瀏覽器引擎,第一款引擎,由在時(shí)編寫,用于版本。
瀏覽器內(nèi)核與js渲染引擎:
簡(jiǎn)介:
在維基百科上是這樣介紹瀏覽器內(nèi)核的,網(wǎng)頁(yè)瀏覽器的排版引擎(Layout Engine或Rendering Engine)也被稱為瀏覽器內(nèi)核、頁(yè)面渲染引擎或模板引擎,它負(fù)責(zé)取得網(wǎng)頁(yè)的內(nèi)容(HTML、XML、圖像等等)、整理消息(例如加入CSS等),以及計(jì)算網(wǎng)頁(yè)的顯示方式,然后會(huì)輸出至顯示器或打印機(jī)。所有網(wǎng)頁(yè)瀏覽器、電子郵件客戶端以及其它需要根據(jù)表示性的標(biāo)記語(yǔ)言(Presentational markup)來(lái)顯示內(nèi)容的應(yīng)用程序都需要排版引擎。
瀏覽器內(nèi)核:
現(xiàn)時(shí)主要的四大排版引擎為:Trident(應(yīng)用于Internet Explorer);Gecko(應(yīng)用于Mozilla Firefox);Blink(應(yīng)用于Chrome );WebKit (應(yīng)用于Apple Safari和早期版本的Google Chrome)。
內(nèi)核 是否開源 插件支持 應(yīng)用瀏覽器 支持操作系統(tǒng)
Trident 否,但提供接口調(diào)用 ActiveX IE Windows
Gecko 是,多種協(xié)議授權(quán)發(fā)行,包括MPL、GPL、LGPL NPAPI Firefox Windows,Mac,Linux/BSD
Blink 是 NPAPI Chrome,Opera Windows,Mac,Linux/BSD
Webkit 是,遵從LGPL協(xié)議 NPAPI Chrome,Safar Windows,Mac,Linux/BSD
因?yàn)檫@些排版引擎都有其代表的瀏覽器,所以常常會(huì)把排版引擎的名稱和瀏覽器的名稱混用,比如常的說(shuō)IE內(nèi)核、Chrome內(nèi)核。其實(shí)這樣子是不太合理的,因?yàn)橐粋€(gè)完整的瀏覽器不會(huì)只有一的排版引擎,還有自己的界面框架和其它的功能支撐,而排版引擎本身也不可能實(shí)現(xiàn)瀏覽器的所有功能。下面羅列一下幾款主流的排版引擎和瀏覽器。
1、Trident(Windows)
Trident 就是大名鼎鼎的 IE瀏覽器 所使用的內(nèi)核,也是很多瀏覽器所使用的內(nèi)核,通常被稱為IE內(nèi)核?;赥rident內(nèi)核的瀏覽器非常多,這是因?yà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è)專門為IE6等老Trident內(nèi)核編寫,在IE6下顯示很正常,但其實(shí)這些網(wǎng)頁(yè)的代碼并不符合W3C標(biāo)準(zhǔn),于是,完全依據(jù)W3C標(biāo)準(zhǔn)寫的網(wǎng)頁(yè)在老的Trident內(nèi)核下面又出現(xiàn)偏差,這就是為什么很多人覺(jué)得后來(lái)的IE9的網(wǎng)頁(yè)排版有時(shí)會(huì)亂了,而IE6則正常,其實(shí)不是瀏覽器兼容性差了,而是你訪問(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)了很多。
Trident內(nèi)核的常見瀏覽器有: IE6、IE7、IE8(Trident 4.0)、IE9(Trident 5.0)、IE10(Trident 6.0);
世界之窗、 360安全瀏覽器、傲游;搜狗瀏覽器;騰訊TT;阿云瀏覽器(早期版本)、百度瀏覽器(早期版本)、瑞星安全瀏覽器、Slim Browser; GreenBrowser、愛帆瀏覽器(12 之前版本)、115瀏覽器、155瀏覽器; 閃游瀏覽器、N氧化碳瀏覽器、糖果瀏覽器、彩虹瀏覽器、瑞影瀏覽器、勇者無(wú)疆瀏覽器、114瀏覽器、螞蟻瀏覽器、飛騰瀏覽器、速達(dá)瀏覽器、佐羅瀏覽器;
其中部分瀏覽器的新版本是“雙核”甚至是“多核”,其中一個(gè)內(nèi)核是Trident,然后再增加一個(gè)其他內(nèi)核。國(guó)內(nèi)的廠商一般把其他內(nèi)核叫做“高速瀏覽模式”,而Trident則是“兼容瀏覽模式”,用戶可以來(lái)回切換。
2、Gecko(跨平臺(tái))
Netscape6 啟用的內(nèi)核,現(xiàn)在主要由Mozilla基金會(huì)進(jìn)行維護(hù),是開源的瀏覽器內(nèi)核,目前最主流的Gecko內(nèi)核瀏覽器是Mozilla Firefox,所以也常常稱之為火狐內(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ò)比較可惜的是,雖然是開源的,也開發(fā)了這么多年,基于Gecko的瀏覽器并不多見,除了一些簡(jiǎn)單的改動(dòng)(坑爹的X瀏覽器)或者是重新編譯(綾川ayakawa、tete009),深度定制或者增強(qiáng)型外殼的還比較少見。另外就是有一些其它軟件借用了Gecko內(nèi)核,比如音樂(lè)管理軟件SongBird。常見的Gecko內(nèi)核的瀏覽器:Mozilla Firefox、Mozilla SeaMonkey、Epiphany(早期版本)、Flock(早期版本)、K-Meleon
3、KHTML(Linux)
KDE開發(fā)的內(nèi)核,速度快捷,容錯(cuò)度低。這個(gè)內(nèi)核可能不見得很多人知道,但是后面再看下去你就明白了。常見的KHTML內(nèi)核的瀏覽器:Konqueror
4、WebKit(跨平臺(tái))
由KHTML發(fā)展而來(lá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)的支持很完善。 當(dāng)前發(fā)展勢(shì)頭最強(qiáng)勁的WebKit內(nèi)核,常見的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)的瀏覽器早就滿坑滿谷了。 常見的Chromium內(nèi)核的瀏覽器:Google Chrome、Chromium、SRWare Iron、Comodo Dragon
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論壇看見有人說(shuō)過(guò),Presto優(yōu)先解析文字,保證可閱讀性,媒體資源的渲染放后。常見的Presto內(nèi)核的瀏覽器:Opera
7、Blink(跨平臺(tái))
Blink是一個(gè)由Google和Opera Software開發(fā)的瀏覽器排版引擎,Google計(jì)劃將這個(gè)渲染引擎作為Chromium計(jì)劃的一部分,并且在2013年4月的時(shí)候公布了這一消息[1]。這一渲染引擎是開源引擎WebKit中WebCore組件的一個(gè)分支[2],并且在Chrome(28及往后版本)、Opera(15及往后版本)和Yandex瀏覽器中使用[3] 。
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)越多類似 WebQQ、Gmail 等大量應(yīng)用了復(fù)雜的 Javascript 運(yùn)算的網(wǎng)站,不同的引擎最終的速度差異會(huì)相當(dāng)大。 第一款JavaScript引擎由布蘭登·艾克在網(wǎng)景公司開發(fā),用于Netscape Navigator網(wǎng)頁(yè)瀏覽器中。引擎的名字叫做SpiderMonkey,由C實(shí)現(xiàn)。它自JavaScript 1.5升級(jí)以符合ECMA-262 版本3。Rhino引擎,由網(wǎng)景公司的Norris Boyd開發(fā),由Java實(shí)現(xiàn)。像SpiderMonkey一樣,Rhino符合ECMA-262 版本3。JavaScript引擎的應(yīng)用例子還包括: Apple Safari 4的Nitro,Google Chrome的V8和 Mozilla Firefox 3.5的TraceMonkey。
主要的網(wǎng)頁(yè)瀏覽器JavaScript引擎:
Mozilla
SpiderMonkey,第一款JavaScript引擎,由Brendan Eich在Netscape Communications時(shí)編寫,用于Mozilla Firefox 1.0~3.0版本。
Rhino,由Mozilla基金會(huì)管理,開放源代碼,完全以Java編寫。
TraceMonkey,基于實(shí)時(shí)編譯的引擎,其中部份代碼取自Tamarin引擎,用于Mozilla Firefox 3.5~3.6版本。
JaegerMonkey,德文J?ger原意為獵人,結(jié)合追蹤和組合碼技術(shù)大幅提高性能,部分技術(shù)借鑿了V8、JavaScriptCore、WebKit,用于Mozilla Firefox 4.0以上版本。
IonMonkey,可以對(duì)JavaScript編譯后的結(jié)果進(jìn)行優(yōu)化,用于Mozilla Firefox 18.0以上版本。
OdinMonkey,可以對(duì)asm.js進(jìn)行優(yōu)化,用于Mozilla Firefox 22.0以上版本。
V8,開放源代碼,由Google丹麥開發(fā),是Google Chrome的一部分。
微軟
Chakra (JScript引擎),中文譯名為查克拉,用于Internet Explorer 9的32位版本[1]及Internet Explorer 10。
Opera
Linear A,用于Opera 4.0~6.1版本。
Linear B,用于Opera 7.0~9.2版本。
Futhark,用于Opera 9.5~10.2版本。
Carakan,由Opera軟件公司編寫,自O(shè)pera10.50版本開始使用。
其它
KJS,KDE的ECMAScript/JavaScript引擎,最初由Harri Porten開發(fā),用于KDE項(xiàng)目的Konqueror網(wǎng)頁(yè)瀏覽器中。
Narcissus,開放源代碼,由Brendan Eich編寫(他也參與編寫了第一個(gè)SpiderMonkey)。
Tamarin,由Adobe Labs編寫,F(xiàn)lash Player 9所使用的引擎。
Nitro(原名SquirrelFish),為Safari 4編寫。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/82324.html
摘要:有趣的是,縱觀瀏覽器的發(fā)展史,其內(nèi)核的派生競(jìng)爭(zhēng)與互相借鑒共同演繹出了盤根錯(cuò)節(jié)的家族圖譜。本文通過(guò)回顧兩次瀏覽器大戰(zhàn),并對(duì)各大主流瀏覽器的發(fā)展作出簡(jiǎn)介,展開一場(chǎng)瀏覽器內(nèi)核的初探之旅,揭開神秘的面紗。 當(dāng)我們?cè)谛聲r(shí)代調(diào)侃 IE 瀏覽器兼容性問(wèn)題的時(shí)候,或多或少忘記了 IE 瀏覽器是第一款支持 CSS 的商用瀏覽器;當(dāng)我們驚嘆于 Chrome 將 Webkit 內(nèi)核發(fā)揮的如此極致的時(shí)候,又或...
摘要:引言一直對(duì)瀏覽器的進(jìn)程線程的運(yùn)行一無(wú)所知,經(jīng)過(guò)一次的刷刷刷相關(guān)的博客之后,對(duì)其有了初步的了解,是時(shí)候該總結(jié)一波了。瀏覽器內(nèi)的進(jìn)程知道了進(jìn)程與線程之間的關(guān)系之后,下面是瀏覽器與進(jìn)程的關(guān)系了。 引言 一直對(duì)瀏覽器的進(jìn)程、線程的運(yùn)行一無(wú)所知,經(jīng)過(guò)一次的刷刷刷相關(guān)的博客之后,對(duì)其有了初步的了解,是時(shí)候該總結(jié)一波了。 進(jìn)程、線程之間的關(guān)系 一個(gè)進(jìn)程有一個(gè)或多個(gè)線程,線程之間共同完成進(jìn)程分配下來(lái)的...
摘要:瀏覽器內(nèi)核又叫渲染引擎,主要負(fù)責(zé)的解析,頁(yè)面布局渲染與復(fù)合層合成。頁(yè)面呈現(xiàn)原理規(guī)范定義了的詞法及語(yǔ)法文法。解析器使用和解析生成器從語(yǔ)法文件中自動(dòng)生成解析器?;貞浺幌陆馕銎鞯慕榻B,創(chuàng)建一個(gè)自底向上的解析器,使用自頂向下解析器。 瀏覽器內(nèi)核又叫渲染引擎,主要負(fù)責(zé) HTML、CSS 的解析,頁(yè)面布局、渲染與復(fù)合層合成。瀏覽器內(nèi)核的不同帶來(lái)的主要問(wèn)題是對(duì) CSS 的支持度與屬性表現(xiàn)差異。 we...
摘要:瀏覽器內(nèi)核又叫渲染引擎,主要負(fù)責(zé)的解析,頁(yè)面布局渲染與復(fù)合層合成。頁(yè)面呈現(xiàn)原理規(guī)范定義了的詞法及語(yǔ)法文法。解析器使用和解析生成器從語(yǔ)法文件中自動(dòng)生成解析器。回憶一下解析器的介紹,創(chuàng)建一個(gè)自底向上的解析器,使用自頂向下解析器。 瀏覽器內(nèi)核又叫渲染引擎,主要負(fù)責(zé) HTML、CSS 的解析,頁(yè)面布局、渲染與復(fù)合層合成。瀏覽器內(nèi)核的不同帶來(lái)的主要問(wèn)題是對(duì) CSS 的支持度與屬性表現(xiàn)差異。 we...
摘要:瀏覽器內(nèi)核又叫渲染引擎,主要負(fù)責(zé)的解析,頁(yè)面布局渲染與復(fù)合層合成。頁(yè)面呈現(xiàn)原理規(guī)范定義了的詞法及語(yǔ)法文法。解析器使用和解析生成器從語(yǔ)法文件中自動(dòng)生成解析器?;貞浺幌陆馕銎鞯慕榻B,創(chuàng)建一個(gè)自底向上的解析器,使用自頂向下解析器。 瀏覽器內(nèi)核又叫渲染引擎,主要負(fù)責(zé) HTML、CSS 的解析,頁(yè)面布局、渲染與復(fù)合層合成。瀏覽器內(nèi)核的不同帶來(lái)的主要問(wèn)題是對(duì) CSS 的支持度與屬性表現(xiàn)差異。 we...
閱讀 1075·2023-04-26 02:21
閱讀 2879·2021-09-24 09:47
閱讀 1664·2019-08-30 15:55
閱讀 2238·2019-08-30 14:01
閱讀 2398·2019-08-29 14:01
閱讀 2114·2019-08-29 12:46
閱讀 877·2019-08-26 13:27
閱讀 2024·2019-08-26 12:23