歡迎大家來到學習啦,本文為大家帶來,歡迎大家閱讀借鑒。
我們每天上網都離不開浏覽器,但是你可能不會關心到浏覽器內核的問題。浏覽器的性能差異,與其使用的內核不無關系。今天,我們就來充實一下自己,了解了解有關浏覽器內核的知識吧。
浏覽器內核是什麼東西
首先解釋一下浏覽器內核是什麼東西。英文叫做:Rendering Engine,中文翻譯很多,排版引擎、解釋引擎、渲染引擎,現在流行稱為浏覽器內核,至於為什麼流行這麼稱呼,請自行領悟。
Rendering Engine,顧名思義,就是用來渲染網頁內容的,將網頁的代碼轉換為最終你看得見的頁面。因為是排版,所以肯定會排版錯位等問題。為什麼會排版錯位呢?有的是由於網站本身編寫不規范,有的是由於浏覽器本身的渲染不標准。
現在有幾個主流的排版引擎,因為這些排版引擎都有其代表的浏覽器,所以常常會把排版引擎的名稱和浏覽器的名稱混用,比如常的說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內核的浏覽器: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。
二、JavaScript引擎
說完了排版引擎,接下來說說 JavaScript 引擎。顧名思義,JavaScript引擎就是用來執行JS代碼的。譬如說,一個算圓周率的網頁,排版引擎把頁面的框架給顯示出來了,但最終的結果需要用到 Javascript 來計算,所以Javascript引擎的快慢也是對整個網頁的速度有著很大影響,特別是目前越來越多類似 WebQQ、Gmail 等大量應用了復雜的 Javascript 運算的網站,不同的引擎最終的速度差異會相當大。
為什麼要單獨拿出來說呢?因為它還涉及到跑分。經常看見很多文章在報道說哪個浏覽器更快,其實大部分說的就是JavaScript的渲染速度,而不是頁面的載入速度。在網速許可的情況下,其實各個浏覽器的頁面載入速度差別不大(Opera遜色一些)。那是不是說對比JavaScript的渲染速度其實沒有意義?也不是這麼說,因為現在JavaScript在頁面中的比重會越來越大,越來越多的動態頁面開始大量借助JavaScript,比如現在主流的SNS、郵箱、網頁游戲,所以JavaScript的渲染速度也是一個很重要的指標。JavaScript的渲染速度越快,動態頁面的展示也越快。Opera在JavaScript引擎的跑分上面一直都是很牛逼的,一般來說最新測試版之間PK,Opera基本都會奪冠。
1、Chakra 查克拉,IE9啟用的新的JavaScript引擎。
2、SpiderMonkey / TraceMonkey / JaegerMonkey
SpiderMonkey應用在Mozilla Firefox 1.0-3.0,TraceMonkey應用在Mozilla Firefox 3.5-3.6版本,JaegerMonkey應用在Mozilla Firefox 4.0及後續的版本。
3、V8 應用於Chrome、傲游3。
4、Nitro 應用於Safari 4及後續的版本。
5、Linear A/Linear B/Futhark/Carakan
Linear A應用於Opera 4.0-6.1版本,Linear B應用於Opera 7.0~9.2版本,Futhark應用於Opera 9.5-10.2版本,Carakan應用於Opera 10.5及後續的版本。
6、KJS KHTML對應的JavaScript引擎。
三、幾個與浏覽器有關的測試項目
1、V8引擎 測試傳送門,現在很多“雙核”浏覽器都用它來跑分測試JavaScript引擎,分數越高越好。
2、Acid3 測試傳送門,這個主要是對網頁標准的兼容性測試,分數越高表示越符合網頁的開發標准,滿分是100分。
3、HTML5 測試傳送門,測試浏覽器對HTML5標准的支持,分數越高越好。
四、幾個奇葩
1、IETab
這是一款浏覽器擴展,並非內核。在沒有第三方編譯版本的時候,IETab一直是 Mozilla Firefox、Chrome等非Trident內核的浏覽器的安裝量最大的擴展之一,方便用戶在不開啟IE的情況下調用Trident內核訪問一些兼容性比較差的網站。
2、Trident/Gecko雙核浏覽器
雖然IETab能實現部分需求,但是深度訂制的畢竟還是不一樣,所以Trident/Gecko雙核浏覽器就誕生了,Sleipnir、Avant 12(Orca)是這類裡面比較常見的。Avant 12因為有Orca的前期積累,所以輕車熟路,後面還打算加入Chromium,變成三核浏覽器,但是偏偏現在Mozilla Firefox和Chrome都在瘋狂刷版本號,肯定有一部分精力要花在跟進版本上。
3、Trident/WebKit雙核浏覽器
現在國內最主流的“雙核”浏覽器基本都是這個架構,360極速浏覽器、世界之窗浏覽器極速版、傲游3、搜狗浏覽器、QQ浏覽器、楓樹浏覽器、快快浏覽器、百度浏覽器、阿雲浏覽器(後期版本)、太陽花浏覽器,其中最奇葩的是傲游3。其它雙核浏覽器都是基於Chromium的,而傲游是基於WebKit的,但是偏偏又用的是V8引擎。
4、Trident/Gecko/WebKit三核浏覽器
目前能見的應該就是日本的Lunascape,Avant增加了WebKit內核之後也會歸類到這裡。說實話,Lunascape真的很難用,真的很奇葩。各個內核相對獨立,外殼本身不夠強化,穩定性不高,所以