關於瀏覽器內核你不得不瞭解的事

接下來主要介紹一些常見的瀏覽器內核和JavaScript引擎,部份內容來自於我在網上找到的資料,還有一些是我本身的理解,不保證徹底正確,可是大體應該是沒錯的。若是有誤,請指正……
關於瀏覽器內核你不得不瞭解的事關於瀏覽器內核你不得不瞭解的事html

1、瀏覽器內核 (排版引擎/渲染引擎)linux

首先解釋一下瀏覽器內核是什麼東西。英文叫作:Rendering Engine,中文翻譯不少,排版引擎、解釋引擎、渲染引擎,如今流行稱爲瀏覽器內核,至於爲何流行這麼稱呼,請自行領悟。瀏覽器

Rendering Engine,顧名思義,就是用來渲染網頁內容的,將網頁的代碼轉換爲最終你看得見的頁面。由於是排版,因此確定會排版錯位等問題。爲何會排版錯位呢?有的是因爲網站自己編寫不規範,有的是因爲瀏覽器自己的渲染不標準。安全

如今有幾個主流的排版引擎,由於這些排版引擎都有其表明的瀏覽器,因此經常會把排版引擎的名稱和瀏覽器的名稱混用,好比常的說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內核的常見瀏覽器有:ide

IE六、IE七、IE8(Trident 4.0)、IE9(Trident 5.0)、IE10(Trident 6.0);世界之窗、 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

七、更多其它內核能夠參考維基百科

2、JavaScript引擎

說完了排版引擎,接下來講說 JavaScript 引擎。顧名思義,JavaScript引擎就是用來執行JS代碼的。譬如說,一個算圓周率的網頁,排版引擎把頁面的框架給顯示出來了,但最終的結果須要用到 Javascript 來計算,因此Javascript引擎的快慢也是對整個網頁的速度有着很大影響,特別是目前愈來愈多相似 WebQQ、Gmail 等大量應用了複雜的 Javascript 運算的網站,不一樣的引擎最終的速度差別會至關大。

爲何要單獨拿出來講呢?由於它還涉及到跑分。常常看見不少文章在報道說哪一個瀏覽器更快,其實大部分說的就是JavaScript的渲染速度,而不是頁面的載入速度。在網速許可的狀況下,其實各個瀏覽器的頁面載入速度差異不大(Opera遜色一些)。那是否是說對比JavaScript的渲染速度其實沒有意義?也不是這麼說,由於如今JavaScript在頁面中的比重會愈來愈大,愈來愈多的動態頁面開始大量藉助JavaScript,好比如今主流的SNS、郵箱、網頁遊戲,因此JavaScript的渲染速度也是一個很重要的指標。JavaScript的渲染速度越快,動態頁面的展現也越快。Opera在JavaScript引擎的跑分上面一直都是很牛逼的,通常來講最新測試版之間PK,Opera基本都會奪冠。

一、Chakra 查克拉,IE9啓用的新的JavaScript引擎。

二、SpiderMonkey / TraceMonkey / JaegerMonkey

SpiderMonkey應用在Mozilla Firefox 1.0-3.0,TraceMonkey應用在Mozilla Firefox 3.5-3.6版本,JaegerMonkey應用在Mozilla Firefox 4.0及後續的版本。

三、V8 應用於Chrome、傲遊3。

四、Nitro 應用於Safari 4及後續的版本。

五、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及後續的版本。

六、KJS  KHTML對應的JavaScript引擎。

關於瀏覽器內核你不得不瞭解的事關於瀏覽器內核你不得不瞭解的事

3、幾個與瀏覽器有關的測試項目

一、V8引擎 測試傳送門,如今不少「雙核」瀏覽器都用它來跑分測試JavaScript引擎,分數越高越好。

二、Acid3 測試傳送門,這個主要是對網頁標準的兼容性測試,分數越高表示越符合網頁的開發標準,滿分是100分。

三、HTML5 測試傳送門,測試瀏覽器對HTML5標準的支持,分數越高越好。

4、幾個奇葩

一、IETab

這是一款瀏覽器擴展,並不是內核。在沒有第三方編譯版本的時候,IETab一直是 Mozilla Firefox、Chrome等非Trident內核的瀏覽器的安裝量最大的擴展之一,方便用戶在不開啓IE的狀況下調用Trident內核訪問一些兼容性比較差的網站。

二、Trident/Gecko雙核瀏覽器

雖然IETab能實現部分需求,可是深度訂製的畢竟仍是不同,因此Trident/Gecko雙核瀏覽器就誕生了,Sleipnir、Avant 12(Orca)是這類裏面比較常見的。Avant 12由於有Orca的前期積累,因此輕車熟路,後面還打算加入Chromium,變成三核瀏覽器,可是恰恰如今Mozilla Firefox和Chrome都在瘋狂刷版本號,確定有一部分精力要花在跟進版本上。

三、Trident/WebKit雙核瀏覽器

如今國內最主流的「雙核」瀏覽器基本都是這個架構,360極速瀏覽器、世界之窗瀏覽器極速版、傲遊3搜狗瀏覽器三、QQ瀏覽器、楓樹瀏覽器、快快瀏覽器、百度瀏覽器、阿雲瀏覽器(後期版本)、太陽花瀏覽器,其中最奇葩的是傲遊3。其它雙核瀏覽器都是基於Chromium的,而傲遊是基於WebKit的,可是恰恰又用的是V8引擎。

四、Trident/Gecko/WebKit三核瀏覽器

目前能見的應該就是日本的Lunascape,Avant增長了WebKit內核以後也會歸類到這裏。說實話,Lunascape真的很難用,真的很奇葩。各個內核相對獨立,外殼自己不夠強化,穩定性不高,因此還不如用回單核瀏覽器。

關於瀏覽器內核你不得不瞭解的事關於瀏覽器內核你不得不瞭解的事

5、幾個小點

一、Chrome/Chromium

不少人都會說本身用的雙核瀏覽器是Chrome/IE雙核的,或者說是基於Chrome的。其實這種說法並不正確,由於Chrome自己並不開源,其它廠商是不能去定製Chrome的。能被修改、定製的是Chromium,Chrome的開源開發版本,代碼和Build都提供下載。

Chromium/Chrome兩個單詞都是鉻,分別是拉丁文和英文,除了名字以外,頗有不少不一樣,你能夠本身對比一下。Chromium一天最多能夠更新十幾二十個版本,實驗性的新特性都會如今這裏放出,可是Chromium自己其實並不穩定。Chrome總共有四個更新分支:Canary、Dev、Beta、Stable,穩定性依次加強。

二、MyIE、MyIE二、傲遊、GreenBrowser 自行搜索,一段歷史。

三、頁面兼容性判斷

在確保IE瀏覽器沒有損壞的基礎上,搭配一款非Trident內核的瀏覽器進行判斷,若是能夠的話,最好全部內核都配齊了。控制變量就能找到問題所在,是瀏覽器自己的問題,仍是頁面編碼有問題。對於用戶來講就能更好地去選擇本身該用什麼瀏覽器訪問什麼頁面,對於開發者來講應該要寫出無差異代碼。

四、一直被模仿,一直被超越的Opera

Opera其實很好看也很好用,並且極度創新(貌似全頁面縮放、多標籤瀏覽、鼠標手勢、快速撥號等功能都是它獨創的),可是市場佔有率一直很低。不少很好用的新特性老是被抄襲,因此你們笑稱Opera「一直被模仿,一直被超越」。坊間傳聞多標籤頁瀏覽器就是Opera發明的,可是貌似有人考究了這個傳聞其實不屬實。不過快速撥號、Turbo瀏覽等功能就是紮紮實實Opera獨創的。你能夠不用Opera,可是你會損失不少樂趣。

五、這年頭流行刷版本號

如今版本號最高的瀏覽器是Chrome,穩定版的版本號是14,也是如今主流瀏覽器裏面誕生時間最短的,真是一個刷版本號高手。早期的Chrome版本更迭還會增長一些比較重要的新特性,好比擴展支持,如今的版本更迭基本上並無伴隨什麼大的更新。如今不少僞高端用戶就會成天追着第三方編譯版本趕忙跟進版本號,可是其實真正的意義並不大。

多虧了Chrome的「提攜」,今年Firefox也在猛刷版本號,年初仍是3.x,如今正式版已是7.0.1,每夜版已經到了10.0。Opera積累了多年纔到11.50,測試版是12.0。IE的正式版是9,平臺預覽版是10。

六、查看源代碼、開發者工具

通常來講,查看源代碼和使用開發者工具是比較實用的,普通用戶可能用的機會並很少,可是在判斷一些問題的時候實際上是頗有用的。經過查看源代碼或者使用開發者工具,能夠大體瞭解這些網站裏面的一些元素或者加載的腳本或者是規則,對於判斷兼容性問題有必定的幫助,也能夠用來準確捕捉頁面元素。

原文來自:http://u.sanwen.net/subject/diakqqqf.html

本文地址:http://www.linuxprobe.com/browser-kernel.html

相關文章
相關標籤/搜索