前端面試題-主流瀏覽器內核

1、瀏覽器市場份額

圖片描述

本報告數據,來源於百度統計所覆蓋的超過150萬的站點,而不是baidu.com的流量數據。javascript

2、瀏覽器內核

瀏覽器內核能夠分紅兩部分: 渲染引擎(layout engineer 或者 Rendering Engine)和 JS 引擎

瀏覽器的內核的不一樣對於網頁的語法解釋會有不一樣,因此渲染的效果也不相同。全部網頁瀏覽器、電子郵件客戶端以及其它須要編輯、顯示網絡內容的應用程序都須要內核。前端

2.1 渲染引擎

渲染引擎負責取得網頁的內容(HTML、XML、圖像等等)、整理訊息(例如加入 CSS 等),以及計算網頁的顯示方式,而後會輸出至顯示器或打印機。java

2.2 JS 引擎

JS 引擎則是解析 Javascript 語言,執行 javascript 語言來實現網頁的動態效果。程序員

最開始渲染引擎和 JS 引擎並無區分的很明確,後來 JS 引擎愈來愈獨立,內核就傾向於只指渲染引擎web

3、主流瀏覽器內核

常見的瀏覽器內核能夠分爲四種:TridentGeckoWebkitChromium/Bink。內核看着陌生,那麼轉換爲相對應的瀏覽器:IEMozilla FireFoxSafariChrome 是否是立馬就以爲熟悉了。chrome

4、Trident ([‘traɪd(ə)nt])

提及 Trident,不少人都會感到陌生,但提起IE(Internet Explorer)則無人不知無人不曉,因爲其被包含在全世界使用率最高的操做系統 Windows 中,獲得了極高的市場佔有率,從而使得 Trident 內核(也被稱爲 IE 內核)長期一家獨大。segmentfault

可是因爲微軟長時間沒有更新 Trident 內核,則致使了兩個後果:一是 Trident 內核曾經幾乎與 W3C 標準脫節(2005年),二是 Trident 內核的大量 Bug 等安全性問題沒有獲得及時解決,而後加上一些致力於開源的開發者和一些學者們公開本身認爲 IE 瀏覽器不安全的觀點,也有不少用戶轉向了其餘瀏覽器。瀏覽器

4.1 Trident 內核常見瀏覽器

(1)IE六、IE七、IE8(Trident 4.0)、IE9(Trident 5.0)、IE10(Trident 6.0);安全

(2)獵豹安全瀏覽器:1.0-4.2版本爲Trident+Webkit,4.3版本爲Trident+Blink;網絡

(3)360安全瀏覽器 :1.0-5.0爲Trident,6.0爲Trident+Webkit,7.0爲Trident+Blink;

(4)360極速瀏覽器:7.5以前爲Trident+Webkit,7.5爲Trident+Blink;

(5)傲遊瀏覽器 :傲遊1.x、2.x爲IE內核,3.x爲IE與Webkit雙核;

(6)搜狗高速瀏覽器:1.x爲Trident,2.0及之後版本爲Trident+Webkit;

4.2 兼容模式

國內不少的雙核瀏覽器的其中一核即是 Trident,美其名曰 「兼容模式」。

4.3 EdgeHTML 內核

Window10 發佈後,IE 將其內置瀏覽器命名爲 Edge,Edge 最顯著的特色就是新內核 EdgeHTML。

5、Gecko ([‘gekəʊ])

5.1 開源內核

Gecko(Firefox 內核):Netscape6 開始採用的內核,後來的 Mozilla FireFox(火狐瀏覽器) 也採用了該內核,Gecko 的特色是代碼徹底公開,所以,其可開發程度很高,全世界的程序員均可覺得其編寫代碼,增長功能。由於這是個開源內核,所以受到許多人的青睞,Gecko 內核的瀏覽器也不少,這也是 Gecko 內核雖然年輕但市場佔有率可以迅速提升的重要緣由。

5.2 Firefox 內核

事實上,Gecko 引擎的由來跟 IE 不無關係,前面說過 IE 沒有使用 W3C 的標準,這致使了微軟內部一些開發人員的不滿;他們與當時已經中止更新了的 Netscape 的一些員工一塊兒創辦了 Mozilla,以當時的 Mosaic 內核爲基礎從新編寫內核,因而開發出了 Gecko。不過事實上,Gecko 內核的瀏覽器仍然仍是 Firefox (火狐) 用戶最多,因此有時也會被稱爲 Firefox 內核。此外 Gecko 也是一個跨平臺內核,能夠在Windows、 BSD、Linux 和 Mac OS X 中使用。

6、Webkit

6.1 Safari 瀏覽器

只要提到 Webkit,大多數人立馬想到的必然是 Chrome,結果致使現在有了把 webkit 稱爲 chrome 內核的錯誤說法,即便 chrome 的內核已是 blink,其實 Webkit 的祖先是 Safari,也就是蘋果系列產品的專屬瀏覽器。

6.2 WebKit 是 KHTML 的分支

WebKit 的前身是蘋果公司使用 KDE(Linux桌面系統)開發的 KHTML 開源引擎,能夠說 WebKit 是 KHTML 的一個開源分支。

7、Chromium/Blink

7.1 Chromium Fork webkit

2008 年,谷歌公司發佈了 chrome 瀏覽器,瀏覽器使用的內核被命名爲 chromium。chromium fork 自開源引擎 webkit,並提升了 WebKit 的代碼可讀性和編譯速度。

7.2 V8 引擎

谷歌公司還研發了本身的 Javascript 引擎,V8,極大地提升了 Javascript 的運算速度

7.3 Blink 是 WebKit 的分支

Google 的 Chromium 項目最初一直使用 WebKit(WebCore) 做爲渲染引擎,但因爲後來蘋果推出的 WebKit2 與 Chromium 的沙箱設計存在衝突,因此 Google 決定從 WebKit 衍生出本身的 Blink 引擎(後由 Google 和 Opera Software 共同研發)。

8、Presto ([‘prestəʊ])

8.1 Opera 瀏覽器

Presto 是 Opera 自主研發的渲染引擎,然而爲了減小研發成本,Opera 在 2013 年 2 月宣佈放棄 Presto,轉而跟隨 Chrome 使用 WebKit 分支的 Chromium 引擎做爲自家瀏覽器核心引擎。

在 Chrome 於 2013 年推出 Blink 引擎以後,Opera 也緊跟其腳步表示將轉而使用 Blink 做爲瀏覽器核心引擎。

9、移動端

移動端的瀏覽器內核主要說的是 系統內置瀏覽器的內核

目前移動設備瀏覽器上經常使用的內核有 WebkitBlinkTridentGecko

一、iPhone 和 iPad 等蘋果 iOS 平臺主要是 WebKit

二、Android 4.4 以前的 Android 系統瀏覽器內核是 WebKitAndroid 4.4 系統瀏覽器切換到了Chromium,內核是 Webkit 的分支 Blink

三、Windows Phone 8 系統瀏覽器內核是 Trident

10、總結

一、IE瀏覽器內核:Trident內核,也被稱爲IE內核;

二、Chrome瀏覽器內核:Chromium內核 → Webkit內核 → Blink內核;

三、Firefox瀏覽器內核:Gecko內核,也被稱Firefox內核;

四、Safari瀏覽器內核:Webkit內核;

五、Opera瀏覽器內核:最初是自主研發的Presto內核,後跟隨谷歌,從Webkit到Blink內核;

六、360瀏覽器、獵豹瀏覽器內核:IE+Chrome雙內核;

七、搜狗、遨遊、QQ瀏覽器內核:Trident(兼容模式)+Webkit(高速模式);

八、百度瀏覽器、世界之窗內核:IE內核;

閱讀更多

參考文章 主流瀏覽器內核介紹(前端開發值得了解的瀏覽器內核歷史)

相關文章
相關標籤/搜索