瀏覽器的核心部分應(yīng)該是瀏覽器核心的“渲染引擎”,其主要作用是解釋頁(yè)面語(yǔ)法并渲染頁(yè)面。因此,“渲染引擎”確定瀏覽器如何顯示網(wǎng)頁(yè)的內(nèi)容和格式信息。不同的瀏覽器內(nèi)核對(duì)網(wǎng)頁(yè)編寫(xiě)的語(yǔ)法的解釋不同,從而導(dǎo)致呈現(xiàn)效果不同,從而導(dǎo)致兼容性問(wèn)題。
1.Trident
Trident(IE內(nèi)核):該內(nèi)核程序于1997年在IE4中首次采用。它是由Microsoft在Mosaic代碼的基礎(chǔ)上進(jìn)行修改的,并在IE11中使用。也通常稱為“ IE內(nèi)核”。由于IE本身的“壟斷”,Trident內(nèi)核很長(zhǎng)時(shí)間沒(méi)有更新,這導(dǎo)致與W3C標(biāo)準(zhǔn)的脫節(jié)并暴露了安全性問(wèn)題。
在2011年,Trident開(kāi)始從IE 9支持HTML5和CSS3。自版本11起,IE最初已支持WebGL技術(shù)。IE8的JavaScript引擎是Jscript,IE9開(kāi)始使用Chakra。Trident內(nèi)核的常見(jiàn)瀏覽器是:
2. Webkit
Webkit(Safari內(nèi)核,Chrome內(nèi)核原型,開(kāi)放源代碼):它是Apple自己的內(nèi)核,也是Apple Safari瀏覽器使用的內(nèi)核。Webkit引擎包括WebCode排版引擎和JavaScript代碼解析引擎。
它們分別來(lái)自KDE的KHTML和KJS。它們是GPL條約授權(quán)的免費(fèi)軟件,并支持BSD系統(tǒng)開(kāi)發(fā)。Chrome,360 Extreme Speed Browser和Sogou High Speed Browser也使用Webkit作為內(nèi)核(Chorome使用其自己的V8引擎來(lái)理解腳本)。
3. Blink
這是由Google和Opera Software開(kāi)發(fā)的瀏覽器排版引擎,谷歌將其作為Chromium計(jì)劃的一部分進(jìn)行計(jì)算,并于2013年4月發(fā)布。
此渲染引擎是開(kāi)源引擎Webkit中WebCore組件的一個(gè)分支,用于Chrome(28和更高版本),Opera(15和更高版本)和Yandex瀏覽器。
瀏覽器的主要組件是:
呈現(xiàn)引擎將開(kāi)始從網(wǎng)絡(luò)層獲取請(qǐng)求的文檔的內(nèi)容。通常以8kB的塊完成。
之后,這是渲染引擎的基本流程:
渲染引擎將開(kāi)始解析HTML文檔,并將元素轉(zhuǎn)換為稱為“內(nèi)容樹(shù)”的樹(shù)中的DOM節(jié)點(diǎn)。引擎將解析外部CSS文件和樣式元素中的樣式數(shù)據(jù)。樣式信息以及HTML中的視覺(jué)指令將用于創(chuàng)建另一棵樹(shù):渲染樹(shù)。
渲染樹(shù)包含具有視覺(jué)屬性(如顏色和尺寸)的矩形。矩形按正確的順序顯示在屏幕上。
構(gòu)建渲染樹(shù)后,它將經(jīng)歷“ 布局 ”過(guò)程。這意味著為每個(gè)節(jié)點(diǎn)提供應(yīng)在屏幕上顯示的確切坐標(biāo)。下一階段是繪畫(huà),將遍歷渲染樹(shù),并使用UI后端層繪畫(huà)每個(gè)節(jié)點(diǎn)。
重要的是要了解這是一個(gè)循序漸進(jìn)的過(guò)程。為了獲得更好的用戶體驗(yàn),渲染引擎將嘗試盡快在屏幕上顯示內(nèi)容。它不會(huì)等到所有HTML解析完畢后才開(kāi)始構(gòu)建和布局渲染樹(shù)。部分內(nèi)容將被解析并顯示,而該過(guò)程將繼續(xù)處理其余部分內(nèi)容,這些其余內(nèi)容始終來(lái)自網(wǎng)絡(luò)。
簡(jiǎn)單來(lái)說(shuō),目前瀏覽器大致已經(jīng)趨向于Webkit系,Webkit系的代碼量還是很大的。加上Chrome的使用頻率在PC市場(chǎng)中有著絕對(duì)市場(chǎng),而且現(xiàn)在Win10的Edge也加入了Webkit體系,速度加快了不少。所以在不久的將來(lái)我們可以預(yù)見(jiàn)的是瀏覽器會(huì)以Webkit系為主,然后百花齊放。
哥解讀:這是一篇神奇的文章,你可以了解瀏覽器內(nèi)核,同時(shí)可以感受Mozilla的倔強(qiáng),IE的恐懼,Opera無(wú)可奈何下的不甘心,感受到了Safari在他的家族培養(yǎng)下一定會(huì)更加優(yōu)秀以及Chrome這位技術(shù)先鋒的美好前景。
當(dāng)我在查閱每個(gè)瀏覽器的發(fā)展過(guò)程時(shí),我感受到了Mozilla的倔強(qiáng),IE的恐懼,Opera無(wú)可奈何下的不甘心,感受到了Safari在他的家族培養(yǎng)下一定會(huì)更加優(yōu)秀以及Chrome這位技術(shù)先鋒的美好前景。balabala………了一大堆,沒(méi)辦法,因?yàn)槲沂敲米樱跃蛺?ài)關(guān)心“鄰里之間的雜事”~Piu——切入正題。
瀏覽器的主要組件有以下幾部分:
用戶界面
除了用來(lái)顯示瀏覽器主窗口之外的瀏覽器的其他部分,例如書(shū)簽?zāi)夸洠刂窓冢斑M(jìn)后退……。
瀏覽器引擎
這里說(shuō),瀏覽器引擎是查詢及操作渲染引擎的接口。我在網(wǎng)上搜的時(shí)候也大都是默認(rèn)為渲染引擎。
渲染引擎
用來(lái)顯示請(qǐng)求的內(nèi)容,如果請(qǐng)求內(nèi)容為html,那么負(fù)責(zé)解析html、及css并將解釋后的結(jié)果顯示出來(lái)。還可以解析xml文件。
js引擎
用來(lái)解釋執(zhí)行js代碼。
網(wǎng)絡(luò)
用來(lái)完成網(wǎng)絡(luò)調(diào)用,如http請(qǐng)求。
Native UI
用來(lái)繪制類似組合選擇框及對(duì)話框等基本組件,具有不特定于某個(gè)平臺(tái)的通用接口,底層使用操作系統(tǒng)的用戶接口。
數(shù)據(jù)存儲(chǔ)
屬于持久層,瀏覽器需要在硬盤(pán)中保存類似cookie的各種數(shù)據(jù)。
平常大家討論最熱鬧的就是瀏覽器內(nèi)核,因?yàn)樗P(guān)乎到我們前端工程師們所設(shè)計(jì)的界面是否如我們心中的模樣展示在各個(gè)瀏覽器中。
雖然現(xiàn)在我們知道的瀏覽器有很多,除了上篇文章介紹的5大主瀏覽器,還有許多國(guó)產(chǎn)瀏覽器,例如360,遨游,世界之窗,UC,搜搜……,雖然瀏覽器廠家很多,但是這些瀏覽器會(huì)各自選擇適合自己的開(kāi)源內(nèi)核。
我知道的瀏覽器內(nèi)核:
Trident
是Windows搭載的網(wǎng)頁(yè)瀏覽器即IE的內(nèi)核。1997年在IE4中使用。
1993年,NCSA將Mosaic的商業(yè)運(yùn)營(yíng)權(quán)轉(zhuǎn)售給了Spyglass公司。
最早的IE1(1994年)版本號(hào)為4.40.308,因?yàn)楫?dāng)時(shí)微軟還沒(méi)有買下Spyglass Mosaic的源碼,到了IE2和IE3,微軟同時(shí)注明了版本2(4.40.516)和版本3(4.70.1158),表明IE即將成為微軟專屬軟件。直到IE4成為微軟專屬軟件。它采用的排版引擎(俗稱內(nèi)核)為Trident。
IE6、IE7、IE8(Trident 4.0)、IE9(Trident 5.0)、IE10(Trident 6.0)
實(shí)際上是一款開(kāi)放的內(nèi)核,其接口內(nèi)核設(shè)計(jì)的相當(dāng)成熟,因此才有許多采用IE內(nèi)核而非IE的瀏覽器涌現(xiàn)。此外,為了方便也有很多人直接簡(jiǎn)稱其為IE內(nèi)核。
獵豹安全瀏覽器(1.0-4.2版本為Trident+Webkit,4.3版本為Trident+Blink)
360安全瀏覽器(1.0-5.0為Trident,6.0為Trident+Webkit,7.0為Trident+Blink)
360極速瀏覽器(7.5之前為Trident+Webkit,7.5為Trident+Blink)
傲游瀏覽器(傲游1.x、2.x為IE內(nèi)核,3.x為IE與Webkit雙核)
百度瀏覽器(早期版本)
世界之窗瀏覽器[2] (最初為IE內(nèi)核,2013年采用Chrome+IE內(nèi)核)
2345瀏覽器、騰訊TT、淘寶瀏覽器
搜狗高速瀏覽器(1.x為Trident,2.0及以后版本為Trident+Webkit)
阿云瀏覽器(早期版本)、瑞星安全瀏覽器
閃游瀏覽器、海豚瀏覽器(iPhone/iPad/Android)
UC瀏覽器(Blink內(nèi)核+Trident內(nèi)核)
其中一個(gè)內(nèi)核是Trident,然后再增加一個(gè)其他內(nèi)核。國(guó)內(nèi)的廠商一般把其他內(nèi)核叫做“高速瀏覽模式”,而Trident則是“兼容瀏覽模式”
Gecko
是Netscape6開(kāi)始采用的內(nèi)核,后來(lái)的Mozilla FireFox也采用了該內(nèi)核,Gecko的特點(diǎn)是代碼完全公開(kāi),是個(gè)開(kāi)源內(nèi)核,因此受到許多人的青睞。
事實(shí)上,Gecko引擎的由來(lái)跟IE不無(wú)關(guān)系
前面說(shuō)過(guò)IE沒(méi)有使用W3C的標(biāo)準(zhǔn),這導(dǎo)致了微軟內(nèi)部一些開(kāi)發(fā)人員的不滿;網(wǎng)景解散后,他們與當(dāng)時(shí)已經(jīng)停止更新了的Netscape的一些員工一起創(chuàng)辦了Mozilla。
以當(dāng)時(shí)的Mosaic內(nèi)核為基礎(chǔ)重新編寫(xiě)內(nèi)核,于是開(kāi)發(fā)出了Gecko。
補(bǔ)充:JavaScript引擎是SpiderMonkey。
結(jié)果,網(wǎng)景6.0(trident 1.0)在2000年11月才被正式發(fā)布。
這二者均是在Mosaic內(nèi)核的基礎(chǔ)上重新編寫(xiě)內(nèi)核。
KHTML及KJS
khtml為排版引擎即渲染引擎,kjs為js引擎。均是由KDE研發(fā)。是自由軟件,符合GPL(由他為基礎(chǔ)開(kāi)發(fā)的軟件也為開(kāi)源軟件)。
Webkit
包括webcore排版引擎與JavaScriptCore解析引擎,均是蘋(píng)果從KDE的KHTML及KJS引擎衍生而來(lái)。是蘋(píng)果公司自己的內(nèi)核,也是Safari瀏覽器使用的內(nèi)核,但是符合GPL條款,所以webkit為開(kāi)源的,但是Safari瀏覽器為部分開(kāi)源,自己公司的某些接口未對(duì)外開(kāi)源。在Chrome 28之前,google使用webkit中webcore與自己的javascript V8引擎。那時(shí)也統(tǒng)稱為webkit引擎。
Blink
由Google和Opera Software開(kāi)發(fā)的瀏覽器排版引擎。至于js引擎,想必Chrome依舊使用自己的V8引擎。
在2013年4月,Google計(jì)劃將這個(gè)渲染引擎作為Chromium計(jì)劃的一部分。這一渲染引擎是開(kāi)源引擎WebKit中WebCore組件的一個(gè)分支。并且在Chrome(28及往后版本)、Opera(15及往后版本)中使用。此舉,谷歌稱稱將與蘋(píng)果的開(kāi)源瀏覽器核心Webkit分道揚(yáng)鑣。
Presto
是Opera12.10至Opera7中采用的內(nèi)核,現(xiàn)已停止開(kāi)發(fā)并廢棄,由于這是商業(yè)引擎(非開(kāi)源),所以在發(fā)展上有了限制。這篇里面,我有寫(xiě)到,在Opera12.10版本以后使用Blink作為其內(nèi)核。
Mozilla與三星也達(dá)成合作協(xié)議開(kāi)發(fā)“下一代”瀏覽器渲染引擎Servo。
未來(lái)會(huì)是怎樣的內(nèi)核布局,又會(huì)有多少優(yōu)勝劣汰。
我查了這么多資料后,覺(jué)得技術(shù)開(kāi)源,不斷創(chuàng)新,不要因?yàn)橐稽c(diǎn)成就,一時(shí)的市場(chǎng)份額,而得意忘形,停止步伐。
人們對(duì)產(chǎn)品的體驗(yàn)沒(méi)有最好,只有更好。
原文作者:Miss---Du ; 轉(zhuǎn)載自:簡(jiǎn)書(shū)
T之家訊 全新UC瀏覽器電腦版更新至5.4.4237.31版。該版本內(nèi)核升級(jí)至Chromium 44,優(yōu)化消息系統(tǒng)互斥策略,修正刪除快捷鍵后,被刪快捷鍵未失效的問(wèn)題,以及其他功能改進(jìn)和問(wèn)題修復(fù)。新老用戶可安裝使用此版本,來(lái)體驗(yàn)這些新功能。
軟件簡(jiǎn)介:UC瀏覽器電腦版是UC優(yōu)視全新推出的PC端電腦版的UC瀏覽器。UC瀏覽器電腦版是基于Chrome的瀏覽器,具備大多數(shù)瀏覽器標(biāo)配的功能,比如無(wú)痕瀏覽、瀏覽加速、鼠標(biāo)手勢(shì)、老板鍵、廣告攔截(支持訂閱過(guò)濾規(guī)則)等,UC瀏覽器電腦版跟很多Chrome內(nèi)核的瀏覽器一樣,具有自己的應(yīng)用商店。
UC瀏覽器電腦版5.4.4237.31更新日志:
? 瀏覽器內(nèi)核升級(jí)至 Chromium 44
? 功能優(yōu)化
[地址欄直達(dá)]
- 新增用戶網(wǎng)址分享點(diǎn)贊通知
- 為已分享資源增加審核狀態(tài)
[購(gòu)物助手]
- 優(yōu)化全網(wǎng)返利網(wǎng)站入口邏輯
[網(wǎng)址安全]
- 安全網(wǎng)址增加星級(jí)顯示
[狀態(tài)欄笑話]
- 狀態(tài)欄增加笑話顯示/關(guān)閉開(kāi)關(guān),也可以在笑話上點(diǎn)擊右鍵選擇關(guān)閉
- 狀態(tài)欄笑話文字隨瀏覽器主題改變顏色
[主框架]
- 優(yōu)化消息系統(tǒng)互斥策略
- 更新用戶歡迎頁(yè)
? 問(wèn)題修正
- 修正刪除快捷鍵后,被刪快捷鍵未失效的問(wèn)題
- 修正無(wú)痕窗口新標(biāo)簽頁(yè)搜索欄不能使用的問(wèn)題
UC瀏覽器5.4.4237.31電腦版下載:
軟媒軟件管家也對(duì)UC瀏覽器電腦版進(jìn)行了收錄,“一鍵無(wú)插件純凈裝機(jī)”等著您體驗(yàn)!
支持Windows XP、Vista、Win7、Win8、Win8.1、Win10等平臺(tái),53.5MB,簡(jiǎn)體中文版。
更多軟件,請(qǐng)?jiān)L問(wèn)IT之家-軟件頻道。