瀏覽器內(nèi)核亿遂,包括瀏覽器渲染引擎和JS解析引擎唁情。負責對網(wǎng)頁的語法進行解釋并渲染(渲染再我另外一篇文章瀏覽器的渲染原理中有提到吟逝,有興趣的小伙伴可以去看看弄喘。)
渲染引擎(Rendering Engine),決定了瀏覽器如何顯示網(wǎng)頁的內(nèi)容以及頁面的格式信息贡蓖,瀏覽器內(nèi)核的不同,因此對語法的解釋不同煌茬,所以所渲染出的效果也不同斥铺。這也就是為什么我們寫頁面的時候需要兼容各種瀏覽器。
JS解析引擎則是解析JavaScript語言坛善,執(zhí)行JavaScript文件來實現(xiàn)網(wǎng)頁的動態(tài)交互效果晾蜘。
最開始兩者的界限不是很明確,后期JS引擎獨立出來之后眠屎,內(nèi)核就更多用來表示渲染引擎剔交,所以我們所說的瀏覽器內(nèi)核大多指瀏覽器的渲染引擎。
現(xiàn)在主流的瀏覽器內(nèi)核改衩,四大金剛分別為:Trident岖常、Blink、WebKit葫督、Gecko
1竭鞍、Trident:也稱為IE內(nèi)核,借助“windows”的勢頭早期處于壟斷的地位橄镜,后由于長時間沒有更新偎快,與W3C脫軌和一系列安全性的問題,導致大多數(shù)用戶轉向其他瀏覽器洽胶。在其他幾大內(nèi)核瀏覽器的迅速發(fā)展下晒夹,IE的市占率仍然是大頭,所以現(xiàn)在很多雙核瀏覽器仍然把IE內(nèi)核作為一種可支持的模式姊氓。大多國產(chǎn)和不知名的瀏覽器都使用的是IE內(nèi)核丐怯。
常見IE內(nèi)核的瀏覽器有:IE6~IE11;360瀏覽器他膳;獵豹瀏覽器响逢;百度瀏覽器(早期);搜狗瀏覽器棕孙;UC瀏覽器等舔亭。
2些膨、Blink:由谷歌從WebKit fork 出的一套獨立的渲染引擎,后與Opera共同研發(fā)钦铺。
這邊先介紹一下Chromium订雾。
Chromium相當于Chrome的工程版或稱實驗版,為了解決Chrome系統(tǒng)上的一些不足矛洞。
Chromium和Chrome有什么區(qū)別洼哎?
(1)新功能會率先在Chromium上實現(xiàn),待驗證后才會應用在Chrome上沼本。
(2)Chromium的更新速度很快,每隔數(shù)小時即有新的開發(fā)版本發(fā)布噩峦。
(3)Chromium免安裝,下載zip封裝版后解壓縮即可使用抽兆。Chrome雖然理論上也能免安裝识补,但Google僅提供安裝版。
(4)Chromium沒有自動更新辫红,Chrome有自動更新凭涂。
其實說白了兩者是一樣的東西,普通的人用Chrome就行了贴妻。
說回來Blink切油,Blink就是Chrome/Chromium中使用的基于WebKit fork出來的一套渲染引擎。
早期由于WebKit的出色表現(xiàn)名惩,Chrome從創(chuàng)始至今一直使用的是WebKit(WebCore) 作為HTML/CSS渲染引擎澎胡,后來由于蘋果推出的 WebKit2 與 Chromium 的沙箱設計存在沖突,所以 Chromium 一直停留在 WebKit娩鹉,并使用移植的方式來實現(xiàn)和主線 WebKit2 的對接滤馍。這增加了 Chromium 的復雜性,且在一定程度上影響了 Chromium 的架構移植工作底循。所以谷歌就下定決心與WebKit分道揚鑣巢株,靠Blink走出一條自己的陽光道。
Blink的橫空出世熙涤,市場影響力不容小覷阁苞,像Opera家就摒棄了自家的內(nèi)核而轉向Blink的懷抱,而現(xiàn)在大多數(shù)國產(chǎn)的雙核瀏覽器使用的也都是Blink內(nèi)核祠挫,
3那槽、WebKit:蘋果家自己的內(nèi)核,Safari內(nèi)核&Blink內(nèi)核的原型等舔。像WebKit就是渲染引擎和解析引擎區(qū)分明確的內(nèi)核骚灸,分別為渲染引擎WebCore(基于KHTML)及JavaScriptCore解析引擎(基于KJS)。特點在于源碼結構清晰慌植、渲染速度極快(其實這個特點是來源于其前身KHTML的)甚牲。缺點是對網(wǎng)頁代碼的兼容性不高义郑,導致一些編寫不標準的網(wǎng)頁無法正常顯示。雖然市場范圍有限丈钙,但是根據(jù)市調(diào)顯示非驮,目前市占率已經(jīng)超過Opera的Presto,看來前景可觀呀雏赦。
4劫笙、Gecko:開源內(nèi)核,以C++編寫的網(wǎng)頁排版引擎星岗,由網(wǎng)景通訊公司開發(fā)的填大,現(xiàn)在由Mozilla基金會維護。大多用于Firefox(火狐)瀏覽器俏橘。
現(xiàn)在部分瀏覽器的新版本都支持了雙核栋盹,甚至多核。
雙核瀏覽器:一個瀏覽器可以支持兩個內(nèi)核隨時切換敷矫,現(xiàn)在雙核瀏覽器大多是一個內(nèi)核是Trident,然后再搭配一個其他內(nèi)核汉额,其他內(nèi)核稱為“高速瀏覽模式”曹仗,Trident則稱為“兼容瀏覽模式”。
例如:
360安全瀏覽器(6.0為Trident+Webkit蠕搜,7.0為Trident+Blink)怎茫;
360極速瀏覽器(7.5前為Trident+Webkit,7.5后為Trident+Blink)妓灌;
獵豹安全瀏覽器(1.0-4.2為Trident+Webkit轨蛤,4.3及以后為Trident+Blink);
搜狗高速瀏覽器(2.0及以后版本為Trident+Webkit)虫埂;
UC瀏覽器(Blink內(nèi)核+Trident內(nèi)核)祥山;
QQ瀏覽器(Trident+WebKit);
參考文獻:《瀏覽器內(nèi)核》:https://baike.baidu.com/item/%E6%B5%8F%E8%A7%88%E5%99%A8%E5%86%85%E6%A0%B8