一、瀏覽器內(nèi)核是什么意思
瀏覽器內(nèi)核是指瀏覽器最核心的部分,負(fù)責(zé)對(duì)網(wǎng)頁(yè)語(yǔ)法的解釋(如標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言下的一個(gè)應(yīng)用HTML、JavaScript)并渲染(顯示)網(wǎng)頁(yè)。
瀏覽器分為兩部分,shell 內(nèi)核,Shell是指瀏覽器的外殼:例如菜單,工具欄等,主要是提供給用戶界面操作、參數(shù)設(shè)置等,它是調(diào)用內(nèi)核來(lái)實(shí)現(xiàn)各種功能的;內(nèi)核則是瀏覽器的核心,是基于標(biāo)記語(yǔ)言顯示內(nèi)容的程序或模塊的。
通常所謂的瀏覽器內(nèi)核,就是瀏覽器所采用的渲染引擎,渲染引擎決定了瀏覽器如何顯示網(wǎng)頁(yè)的內(nèi)容以及頁(yè)面的格式信息。不同的瀏覽器內(nèi)核對(duì)網(wǎng)頁(yè)編寫(xiě)語(yǔ)法的解釋也有不同,因此同一網(wǎng)頁(yè)在不同的內(nèi)核的瀏覽器里的渲染(顯示)效果也可能不同。
二、瀏覽器內(nèi)核有幾種類型
瀏覽器的內(nèi)核不止有一種,有以下五種類型:
1、Trident內(nèi)核
Trident(又叫MSHTML)是一款開(kāi)放的內(nèi)核,由于其引擎被設(shè)計(jì)成一個(gè)軟件模塊,所以其他的軟件開(kāi)發(fā)人員就能夠在他們開(kāi)發(fā)的應(yīng)用程序中加入網(wǎng)頁(yè)的瀏覽功能。Trident內(nèi)核接口已經(jīng)很成熟了,但它無(wú)法在windows操作系統(tǒng)之外的其他操作系統(tǒng)上使用,所以不能跨平臺(tái)使用。
2、Gecko內(nèi)核
ecko的特點(diǎn)是代碼完全公開(kāi),因此,其可開(kāi)發(fā)程度很高,全世界的程序員都可以為其編寫(xiě)代碼,增加功能。因?yàn)檫@是個(gè)開(kāi)源內(nèi)核,因此受到許多人的青睞,Gecko內(nèi)核的瀏覽器也很多,這也是Gecko內(nèi)核雖然年輕但市場(chǎng)占有率能夠迅速提高的重要原因。
3、Presto內(nèi)核
這款瀏覽器內(nèi)核的特點(diǎn)就是渲染速度的優(yōu)化達(dá)到了極致,它實(shí)際上這是一個(gè)動(dòng)態(tài)內(nèi)核,與前面幾個(gè)內(nèi)核的最大的區(qū)別就在腳本處理上,Presto有著天生的優(yōu)勢(shì),頁(yè)面的全部或者部分都能夠在回應(yīng)腳本事件時(shí)等情況下被重新解析;然而代價(jià)是犧牲了網(wǎng)頁(yè)的兼容性,現(xiàn)已停止開(kāi)發(fā)并廢棄。
4、Webkit內(nèi)核
Webkit引擎包含WebCore排版引擎及JavaScriptCore解析引擎,均是從KDE的KHTML及KJS引擎衍生而來(lái),它們都是自由軟件,在GPL條約下授權(quán),同時(shí)支持BSD系統(tǒng)的開(kāi)發(fā)。所以Webkit也是自由軟件,同時(shí)開(kāi)放源代碼。
5、Blink內(nèi)核
Blink渲染引擎是2013年推出的,是多處理架構(gòu)系統(tǒng),新內(nèi)核會(huì)提升整個(gè)開(kāi)源網(wǎng)絡(luò)生態(tài)系統(tǒng)的機(jī)能。
三、瀏覽器內(nèi)核的技術(shù)分支有幾種
瀏覽器內(nèi)核的技術(shù)分支主要有三種:排版渲染引擎、JavaScript引擎以及其他:
1、排版渲染引擎
排版渲染引擎的功能主要負(fù)責(zé)取得網(wǎng)頁(yè)的內(nèi)容(HTML、XML、圖像等)、整理信息,以及計(jì)算網(wǎng)頁(yè)的顯示方式,然后輸出至顯示器。所有的網(wǎng)頁(yè)瀏覽器、電子郵件客戶端以及其他需要編輯、顯示網(wǎng)絡(luò)內(nèi)容的應(yīng)用程序都需要排版渲染引擎,特別是排版渲染引擎決定了瀏覽器如何顯示網(wǎng)頁(yè)的內(nèi)容以及頁(yè)面的格式信息。
2、JavaScript引擎
JavaScript引擎是用來(lái)渲染JavaScript的,JavaScript的渲染速度越快,動(dòng)態(tài)網(wǎng)頁(yè)的展示也越快,因此這一技術(shù)分支下發(fā)展的瀏覽器內(nèi)核主要重視的是瀏覽器的使用速度和用戶的使用體驗(yàn)。
3、其他
其他類型的技術(shù)分支主要是一些小眾的技術(shù)。