摘要:所有網頁瀏覽器電子郵件客戶端以及其它需要根據表示性的標記語言來顯示內容的應用程序都需要排版引擎。瀏覽器內核現時主要的四大排版引擎為應用于應用于應用于應用于和早期版本的。主要的網頁瀏覽器引擎,第一款引擎,由在時編寫,用于版本。
瀏覽器內核與js渲染引擎:
簡介:
在維基百科上是這樣介紹瀏覽器內核的,網頁瀏覽器的排版引擎(Layout Engine或Rendering Engine)也被稱為瀏覽器內核、頁面渲染引擎或模板引擎,它負責取得網頁的內容(HTML、XML、圖像等等)、整理消息(例如加入CSS等),以及計算網頁的顯示方式,然后會輸出至顯示器或打印機。所有網頁瀏覽器、電子郵件客戶端以及其它需要根據表示性的標記語言(Presentational markup)來顯示內容的應用程序都需要排版引擎。
瀏覽器內核:
現時主要的四大排版引擎為:Trident(應用于Internet Explorer);Gecko(應用于Mozilla Firefox);Blink(應用于Chrome );WebKit (應用于Apple Safari和早期版本的Google Chrome)。
內核 是否開源 插件支持 應用瀏覽器 支持操作系統
Trident 否,但提供接口調用 ActiveX IE Windows
Gecko 是,多種協議授權發行,包括MPL、GPL、LGPL NPAPI Firefox Windows,Mac,Linux/BSD
Blink 是 NPAPI Chrome,Opera Windows,Mac,Linux/BSD
Webkit 是,遵從LGPL協議 NPAPI Chrome,Safar Windows,Mac,Linux/BSD
因為這些排版引擎都有其代表的瀏覽器,所以常常會把排版引擎的名稱和瀏覽器的名稱混用,比如常的說IE內核、Chrome內核。其實這樣子是不太合理的,因為一個完整的瀏覽器不會只有一的排版引擎,還有自己的界面框架和其它的功能支撐,而排版引擎本身也不可能實現瀏覽器的所有功能。下面羅列一下幾款主流的排版引擎和瀏覽器。
1、Trident(Windows)
Trident 就是大名鼎鼎的 IE瀏覽器 所使用的內核,也是很多瀏覽器所使用的內核,通常被稱為IE內核。基于Trident內核的瀏覽器非常多,這是因為Trident內核提供了豐富的調用接口。老的Trident內核(比如常說的IE6內核)一直是不遵循W3C標準的,但是由于當時IE6的市場份額最大,所以后果就是大量的網頁專門為IE6等老Trident內核編寫,在IE6下顯示很正常,但其實這些網頁的代碼并不符合W3C標準,于是,完全依據W3C標準寫的網頁在老的Trident內核下面又出現偏差,這就是為什么很多人覺得后來的IE9的網頁排版有時會亂了,而IE6則正常,其實不是瀏覽器兼容性差了,而是你訪問的網頁不符合新的標準。目前可供調用的最新版的Trident內核是IE9所用的內核,相較之前的版本對W3C標準的支持增強了很多。
Trident內核的常見瀏覽器有: IE6、IE7、IE8(Trident 4.0)、IE9(Trident 5.0)、IE10(Trident 6.0);
世界之窗、 360安全瀏覽器、傲游;搜狗瀏覽器;騰訊TT;阿云瀏覽器(早期版本)、百度瀏覽器(早期版本)、瑞星安全瀏覽器、Slim Browser; GreenBrowser、愛帆瀏覽器(12 之前版本)、115瀏覽器、155瀏覽器; 閃游瀏覽器、N氧化碳瀏覽器、糖果瀏覽器、彩虹瀏覽器、瑞影瀏覽器、勇者無疆瀏覽器、114瀏覽器、螞蟻瀏覽器、飛騰瀏覽器、速達瀏覽器、佐羅瀏覽器;
其中部分瀏覽器的新版本是“雙核”甚至是“多核”,其中一個內核是Trident,然后再增加一個其他內核。國內的廠商一般把其他內核叫做“高速瀏覽模式”,而Trident則是“兼容瀏覽模式”,用戶可以來回切換。
2、Gecko(跨平臺)
Netscape6 啟用的內核,現在主要由Mozilla基金會進行維護,是開源的瀏覽器內核,目前最主流的Gecko內核瀏覽器是Mozilla Firefox,所以也常常稱之為火狐內核。因為Firefox的出現,IE的霸主地位逐步被削弱,Chrome的出現則是加速了這個進程。非Trident內核的興起正在改變著整個互聯網,最直接的就是推動了編碼的標準化,也使得微軟在競爭壓力下不得不改進IE。不過比較可惜的是,雖然是開源的,也開發了這么多年,基于Gecko的瀏覽器并不多見,除了一些簡單的改動(坑爹的X瀏覽器)或者是重新編譯(綾川ayakawa、tete009),深度定制或者增強型外殼的還比較少見。另外就是有一些其它軟件借用了Gecko內核,比如音樂管理軟件SongBird。常見的Gecko內核的瀏覽器:Mozilla Firefox、Mozilla SeaMonkey、Epiphany(早期版本)、Flock(早期版本)、K-Meleon
3、KHTML(Linux)
KDE開發的內核,速度快捷,容錯度低。這個內核可能不見得很多人知道,但是后面再看下去你就明白了。常見的KHTML內核的瀏覽器:Konqueror
4、WebKit(跨平臺)
由KHTML發展而來,也是蘋果給開源世界的一大貢獻。是目前最火熱的瀏覽器內核,火熱倒不是說市場份額,而是應用的面積和勢頭。因為是脫胎于KHTML,所以也是具有高速的特點,同樣遵循W3C標準。從目前看來,WebKit 內核是最有潛力而且是已經有相當成績的新興內核,性能非常好,而且對W3C標準的支持很完善。 當前發展勢頭最強勁的WebKit內核,常見的WebKit內核的瀏覽器:Apple Safari (Win/Mac/iPhone/iPad)、Symbian手機瀏覽器、Android 默認瀏覽器,
5、Chromium(跨平臺)
其實 Chromium 就是 WebKit,維基百科里面并沒有將Chromium從WebKit分出來,這個區分完全是基于我個人的惡趣味。記得以前看過一個大牛的博文說過,Chromium把WebKit的代碼梳理得可讀性提高很多,所以以前可能需要一天進行編譯的代碼,現在只要兩個小時就能搞定。這個我自己也沒有考究過,但是估計可信。這個也能解釋為什么Gecko和WebKit出來了這么久,第三方編譯、定制的版本并不多,但是由Chromium衍生出來的瀏覽器早就滿坑滿谷了。 常見的Chromium內核的瀏覽器:Google Chrome、Chromium、SRWare Iron、Comodo Dragon
6、Presto(跨平臺)
Opera 所采用的內核,準確地說,是Opera 7.0及以后版本的內核,Opera 3.5-6.1版本使用的內核叫做Elektra。不用說,Presto對W3C標準的支持也是很良好的。雖然我很喜歡Opera,但是我對Presto的渲染速度一直有保留態度。之前在OperaChina論壇看見有人說過,Presto優先解析文字,保證可閱讀性,媒體資源的渲染放后。常見的Presto內核的瀏覽器:Opera
7、Blink(跨平臺)
Blink是一個由Google和Opera Software開發的瀏覽器排版引擎,Google計劃將這個渲染引擎作為Chromium計劃的一部分,并且在2013年4月的時候公布了這一消息[1]。這一渲染引擎是開源引擎WebKit中WebCore組件的一個分支[2],并且在Chrome(28及往后版本)、Opera(15及往后版本)和Yandex瀏覽器中使用[3] 。
JavaScript引擎:
說完了排版引擎,接下來說說 JavaScript 引擎。顧名思義,JavaScript引擎就是用來執行JS代碼的。譬如說,一個算圓周率的網頁,排版引擎把頁面的框架給顯示出來了,但最終的結果需要用到 Javascript 來計算,所以Javascript引擎的快慢也是對整個網頁的速度有著很大影響,特別是目前越來越多類似 WebQQ、Gmail 等大量應用了復雜的 Javascript 運算的網站,不同的引擎最終的速度差異會相當大。 第一款JavaScript引擎由布蘭登·艾克在網景公司開發,用于Netscape Navigator網頁瀏覽器中。引擎的名字叫做SpiderMonkey,由C實現。它自JavaScript 1.5升級以符合ECMA-262 版本3。Rhino引擎,由網景公司的Norris Boyd開發,由Java實現。像SpiderMonkey一樣,Rhino符合ECMA-262 版本3。JavaScript引擎的應用例子還包括: Apple Safari 4的Nitro,Google Chrome的V8和 Mozilla Firefox 3.5的TraceMonkey。
主要的網頁瀏覽器JavaScript引擎:
Mozilla
SpiderMonkey,第一款JavaScript引擎,由Brendan Eich在Netscape Communications時編寫,用于Mozilla Firefox 1.0~3.0版本。
Rhino,由Mozilla基金會管理,開放源代碼,完全以Java編寫。
TraceMonkey,基于實時編譯的引擎,其中部份代碼取自Tamarin引擎,用于Mozilla Firefox 3.5~3.6版本。
JaegerMonkey,德文J?ger原意為獵人,結合追蹤和組合碼技術大幅提高性能,部分技術借鑿了V8、JavaScriptCore、WebKit,用于Mozilla Firefox 4.0以上版本。
IonMonkey,可以對JavaScript編譯后的結果進行優化,用于Mozilla Firefox 18.0以上版本。
OdinMonkey,可以對asm.js進行優化,用于Mozilla Firefox 22.0以上版本。
V8,開放源代碼,由Google丹麥開發,是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軟件公司編寫,自Opera10.50版本開始使用。
其它
KJS,KDE的ECMAScript/JavaScript引擎,最初由Harri Porten開發,用于KDE項目的Konqueror網頁瀏覽器中。
Narcissus,開放源代碼,由Brendan Eich編寫(他也參與編寫了第一個SpiderMonkey)。
Tamarin,由Adobe Labs編寫,Flash Player 9所使用的引擎。
Nitro(原名SquirrelFish),為Safari 4編寫。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/82324.html
摘要:有趣的是,縱觀瀏覽器的發展史,其內核的派生競爭與互相借鑒共同演繹出了盤根錯節的家族圖譜。本文通過回顧兩次瀏覽器大戰,并對各大主流瀏覽器的發展作出簡介,展開一場瀏覽器內核的初探之旅,揭開神秘的面紗。 當我們在新時代調侃 IE 瀏覽器兼容性問題的時候,或多或少忘記了 IE 瀏覽器是第一款支持 CSS 的商用瀏覽器;當我們驚嘆于 Chrome 將 Webkit 內核發揮的如此極致的時候,又或...
摘要:引言一直對瀏覽器的進程線程的運行一無所知,經過一次的刷刷刷相關的博客之后,對其有了初步的了解,是時候該總結一波了。瀏覽器內的進程知道了進程與線程之間的關系之后,下面是瀏覽器與進程的關系了。 引言 一直對瀏覽器的進程、線程的運行一無所知,經過一次的刷刷刷相關的博客之后,對其有了初步的了解,是時候該總結一波了。 進程、線程之間的關系 一個進程有一個或多個線程,線程之間共同完成進程分配下來的...
摘要:瀏覽器內核又叫渲染引擎,主要負責的解析,頁面布局渲染與復合層合成。頁面呈現原理規范定義了的詞法及語法文法。解析器使用和解析生成器從語法文件中自動生成解析器。回憶一下解析器的介紹,創建一個自底向上的解析器,使用自頂向下解析器。 瀏覽器內核又叫渲染引擎,主要負責 HTML、CSS 的解析,頁面布局、渲染與復合層合成。瀏覽器內核的不同帶來的主要問題是對 CSS 的支持度與屬性表現差異。 we...
摘要:瀏覽器內核又叫渲染引擎,主要負責的解析,頁面布局渲染與復合層合成。頁面呈現原理規范定義了的詞法及語法文法。解析器使用和解析生成器從語法文件中自動生成解析器。回憶一下解析器的介紹,創建一個自底向上的解析器,使用自頂向下解析器。 瀏覽器內核又叫渲染引擎,主要負責 HTML、CSS 的解析,頁面布局、渲染與復合層合成。瀏覽器內核的不同帶來的主要問題是對 CSS 的支持度與屬性表現差異。 we...
摘要:瀏覽器內核又叫渲染引擎,主要負責的解析,頁面布局渲染與復合層合成。頁面呈現原理規范定義了的詞法及語法文法。解析器使用和解析生成器從語法文件中自動生成解析器。回憶一下解析器的介紹,創建一個自底向上的解析器,使用自頂向下解析器。 瀏覽器內核又叫渲染引擎,主要負責 HTML、CSS 的解析,頁面布局、渲染與復合層合成。瀏覽器內核的不同帶來的主要問題是對 CSS 的支持度與屬性表現差異。 we...
閱讀 998·2023-04-26 02:21
閱讀 2816·2021-09-24 09:47
閱讀 1606·2019-08-30 15:55
閱讀 2162·2019-08-30 14:01
閱讀 2319·2019-08-29 14:01
閱讀 2047·2019-08-29 12:46
閱讀 813·2019-08-26 13:27
閱讀 1932·2019-08-26 12:23