瀏覽器內核與js引擎

瀏覽器內核與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/BSDide

  由於這些排版引擎都有其表明的瀏覽器,因此經常會把排版引擎的名稱和瀏覽器的名稱混用,好比常的說IE內核、Chrome內核。其實這樣子是不太合理的,由於一個完整的瀏覽器不會只有一的排版引擎,還有本身的界面框架和其它的功能支撐,而排版引擎自己也不可能實現瀏覽器的全部功能。下面羅列一下幾款主流的排版引擎和瀏覽器。性能

一、Trident(Windows)優化

Trident 就是大名鼎鼎的 IE瀏覽器 所使用的內核,也是不少瀏覽器所使用的內核,一般被稱爲IE內核。基於Trident內核的瀏覽器很是多,這是由於Trident內核提供了豐富的調用接口。老的Trident內核(好比常說的IE6內核)一直是不遵循W3C標準的,可是因爲當時IE6的市場份額最大,因此後果就是大量的網頁專門爲IE6等老Trident內核編寫,在IE6下顯示很正常,但其實這些網頁的代碼並不符合W3C標準,因而,徹底依據W3C標準寫的網頁在老的Trident內核下面又出現誤差,這就是爲何不少人以爲後來的IE9的網頁排版有時會亂了,而IE6則正常,其實不是瀏覽器兼容性差了,而是你訪問的網頁不符合新的標準。目前可供調用的最新版的Trident內核是IE9所用的內核,相較以前的版本對W3C標準的支持加強了不少。 網站

Trident內核的常見瀏覽器有: IE六、IE七、IE8(Trident 4.0)、IE9(Trident 5.0)、IE10(Trident 6.0); ui

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

其中部分瀏覽器的新版本是「雙核」甚至是「多核」,其中一個內核是Trident,而後再增長一個其餘內核。國內的廠商通常把其餘內核叫作「高速瀏覽模式」,而Trident則是「兼容瀏覽模式」,用戶能夠來回切換。 操作系統

二、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

三、KHTML(Linux)

KDE開發的內核,速度快捷,容錯度低。這個內核可能不見得不少人知道,可是後面再看下去你就明白了。常見的KHTML內核的瀏覽器:Konqueror

四、WebKit(跨平臺)

由KHTML發展而來,也是蘋果給開源世界的一大貢獻。是目前最火熱的瀏覽器內核,火熱倒不是說市場份額,而是應用的面積和勢頭。由於是脫胎於KHTML,因此也是具備高速的特色,一樣遵循W3C標準。從目前看來,WebKit 內核是最有潛力並且是已經有至關成績的新興內核,性能很是好,並且對W3C標準的支持很完善。 當前發展勢頭最強勁的WebKit內核,常見的WebKit內核的瀏覽器:Apple Safari (Win/Mac/iPhone/iPad)、Symbian手機瀏覽器、Android 默認瀏覽器,

五、Chromium(跨平臺)

其實 Chromium 就是 WebKit,維基百科裏面並無將Chromium從WebKit分出來,這個區分徹底是基於我我的的惡趣味。記得之前看過一個大牛的博文說過,Chromium把WebKit的代碼梳理得可讀性提升不少,因此之前可能須要一天進行編譯的代碼,如今只要兩個小時就能搞定。這個我本身也沒有考究過,可是估計可信。這個也能解釋爲何Gecko和WebKit出來了這麼久,第三方編譯、定製的版本並很少,可是由Chromium衍生出來的瀏覽器早就滿坑滿谷了。 常見的Chromium內核的瀏覽器:Google Chrome、Chromium、SRWare Iron、Comodo Dragon

六、Presto(跨平臺)

Opera 所採用的內核,準確地說,是Opera 7.0及之後版本的內核,Opera 3.5-6.1版本使用的內核叫作Elektra。不用說,Presto對W3C標準的支持也是很良好的。雖然我很喜歡Opera,可是我對Presto的渲染速度一直有保留態度。以前在OperaChina論壇看見有人說過,Presto優先解析文字,保證可閱讀性,媒體資源的渲染放後。常見的Presto內核的瀏覽器:Opera

七、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原意爲獵人,結合追蹤和組合碼技術大幅提升性能,部分技術借鑿了V八、JavaScriptCore、WebKit,用於Mozilla Firefox 4.0以上版本。

IonMonkey,能夠對JavaScript編譯後的結果進行優化,用於Mozilla Firefox 18.0以上版本。

OdinMonkey,能夠對asm.js進行優化,用於Mozilla Firefox 22.0以上版本。

Google

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編寫。

相關文章
相關標籤/搜索