1.什么是瀏覽器的內(nèi)核?
瀏覽器最重要或者說(shuō)最核心的部分是“Rendering Engine”谊惭,可大概譯為“渲染引擎”汽馋,不過(guò)我們一般習(xí)慣將之稱為“瀏覽器內(nèi)核”。負(fù)責(zé)對(duì)網(wǎng)頁(yè)語(yǔ)法的解釋并渲染網(wǎng)頁(yè)圈盔。所以豹芯,通常所謂的瀏覽器內(nèi)核也就是瀏覽器所采用的渲染引擎,渲染引擎決定了瀏覽器如何顯示網(wǎng)頁(yè)的內(nèi)容以及頁(yè)面的格式信息驱敲。
2.它在瀏覽器中的作用是什么铁蹈?
瀏覽器內(nèi)核對(duì)于瀏覽器而言,是基礎(chǔ)众眨,是依托握牧。如果沒(méi)有了瀏覽器內(nèi)核,那么瀏覽器是無(wú)法獨(dú)立存在且產(chǎn)生作用的娩梨。它的存在沿腰,決定了網(wǎng)頁(yè)的呈現(xiàn)的內(nèi)容、格式以及效果狈定。所以說(shuō)颂龙,一個(gè)好的瀏覽器习蓬,一定是基于有一個(gè)穩(wěn)定、高端措嵌、作用明顯的瀏覽器內(nèi)核的躲叼。
3.四大瀏覽器內(nèi)核介紹
(1)WebKit內(nèi)核
(2)Gecko內(nèi)核
(3)Trident內(nèi)核
(4)Presto內(nèi)核
(1)WEBKIT內(nèi)核
Webkit:是蘋果公司自主研發(fā)的內(nèi)核,也是Safari瀏覽器使用的內(nèi)核企巢。 Webkit引擎包含渲染引擎WebCore和javascript引擎JSCore枫慷,均是從KDE的KHTML及KJS引擎衍生而來(lái),它們都是自由軟件包斑,在GPL條約下授權(quán)流礁,同時(shí)支持BSD系統(tǒng)的開(kāi)發(fā)。所以Webkit也是自由軟件罗丰,同時(shí)開(kāi)放源代碼神帅。Google Chrome、360極速瀏覽器以及搜狗高速瀏覽器高速模式也使用Webkit作為內(nèi)核萌抵。
(2)GECKO內(nèi)核
Netscape6開(kāi)始采用的內(nèi)核找御,后來(lái)的Mozilla FireFox(火狐瀏覽器) 也采用了該內(nèi)核,Gecko的特點(diǎn)是代碼完全公開(kāi)绍填,因此霎桅,其可開(kāi)發(fā)程度很高,全世界的程序員都可以為其編寫代碼讨永,增加功能滔驶。因?yàn)檫@是個(gè)開(kāi)源內(nèi)核,因此受到許多人的青睞卿闹,Gecko內(nèi)核的瀏覽器也很多揭糕,這也是Gecko內(nèi)核雖然年輕但市場(chǎng)占有率能夠迅速提高的重要原因。Gecko 內(nèi)核的瀏覽器仍然還是Firefox (火狐) 用戶最多锻霎,所以有時(shí)也會(huì)被稱為Firefox內(nèi)核著角。Gecko核心設(shè)計(jì)的相對(duì)成熟,在無(wú)法獲取源碼的情況下旋恼,開(kāi)放程度僅次于IE吏口。
(3)TRIDENT內(nèi)核
該內(nèi)核程序在1997年的IE4中首次被采用,是微軟在Mosaic代碼的基礎(chǔ)之上修改而來(lái)的冰更,并沿用到IE11产徊,也被普遍稱作”IE內(nèi)核”。Trident實(shí)際上是一款開(kāi)放的內(nèi)核蜀细,其接口內(nèi)核設(shè)計(jì)的相當(dāng)成熟囚痴,因此才有許多采用IE內(nèi)核而非IE的瀏覽器(殼瀏覽器)涌現(xiàn)。由于IE本身的“壟斷性”(雖然名義上IE并非壟斷审葬,但實(shí)際上深滚,特別是從Windows 95年代一直到XP初期奕谭,就市場(chǎng)占有率來(lái)說(shuō)IE的確借助Windows的東風(fēng)處于“壟斷”的地位)而使得Trident內(nèi)核的長(zhǎng)期一家獨(dú)大。
微軟很長(zhǎng)時(shí)間都并沒(méi)有更新Trident內(nèi)核痴荐,這也導(dǎo)致了后面的兩個(gè)后果: 一是Trident內(nèi)核曾經(jīng)幾乎與W3C標(biāo)準(zhǔn)脫節(jié)(2005年) 二是Trident內(nèi)核的大量 Bug等安全性問(wèn)題沒(méi)有得到及時(shí)解決血柳,然后加上一些致力于開(kāi)源的開(kāi)發(fā)者和一些學(xué)者們公開(kāi)自己認(rèn)為IE瀏覽器不安全的觀點(diǎn),也有很多用戶轉(zhuǎn)向了其他瀏覽 器生兆,F(xiàn)irefox和Opera就是這個(gè)時(shí)候興起的难捌。Trident內(nèi)核的常見(jiàn)瀏覽器有:IE6、IE7鸦难、IE8(Trident 4.0)根吁、IE9(Trident 5.0)、IE10(Trident 6.0)合蔽、2345瀏覽器等等
(4)PRESTO內(nèi)核
Presto是一個(gè)由Opera Software開(kāi)發(fā)的瀏覽器排版引擎击敌,供Opera 7.0及以上使用。該款引擎的特點(diǎn)就是渲染速度的優(yōu)化達(dá)到了極致拴事,也是目前公認(rèn)網(wǎng)頁(yè)瀏覽速度最快的瀏覽器內(nèi)核沃斤,然而代價(jià)是犧牲了網(wǎng)頁(yè)的兼容性。實(shí)際上它是一個(gè)動(dòng)態(tài)內(nèi)核刃宵,與其它幾個(gè)內(nèi)核的最大的區(qū)別就在腳本處理上衡瓶,Presto有著天生的 優(yōu)勢(shì),頁(yè)面的全部或者部分都能夠在回應(yīng)腳本事件時(shí)等情況下被重新解析牲证。此外該內(nèi)核在執(zhí)行Javascrīpt的時(shí)候有著最快的速度哮针,根據(jù)在同等條件下的測(cè) 試,Presto內(nèi)核執(zhí)行同等Javascrīpt所需的時(shí)間僅有Trident和Gecko內(nèi)核的約1/3(Trident內(nèi)核最慢坦袍,不過(guò)兩者相差沒(méi)有多大)
4.CSS3中-MS-,-MOZ-,-WEBKIT-,-O-瀏覽器私有前綴詳解
(1)-moz-:代表FireFox瀏覽器私有屬性
(2)-ms-:代表IE瀏覽器私有屬性
(3)-webkit-:代表safari诚撵、chrome瀏覽器私有屬性
(4)-o-:代表opera瀏覽器私有屬性