時(shí)間:2020-01-25 18:04:21 作者:Mesa 瀏覽量:136
對(duì)于用戶來(lái)說(shuō),瀏覽器是用戶的萬(wàn)花筒,從這里可以瀏覽網(wǎng)絡(luò)世界的任何一個(gè)角落;對(duì)于前端開(kāi)發(fā)工程師來(lái)說(shuō),瀏覽器就是前端知識(shí)最大的舞臺(tái)。當(dāng)然,現(xiàn)在的前端的舞臺(tái)不僅限于瀏覽器,也有其他應(yīng)用,如手機(jī)端的APP,但其基本原理和瀏覽器類似,正所謂入鄉(xiāng)隨俗,在別人的地盤(pán)耍事,就必須認(rèn)識(shí)瀏覽器,了解其工作機(jī)理,知道其中規(guī)矩。下面我們開(kāi)始一步一步探討瀏覽器ie內(nèi)核。
前端用武之地瀏覽器以及ie內(nèi)核圖一
瀏覽器有哪些?
根據(jù)最新的統(tǒng)計(jì)顯示,全球?yàn)g覽器市場(chǎng)份額最大的幾家廠商及其排名分別是:Google Chrome、Mozilla Firefox、Internet Explorer、Microsoft Edge、Opera及Safari,國(guó)內(nèi)的主要瀏覽器UC、QQ瀏覽器、搜狗、360,百度等。
前端用武之地瀏覽器以及ie內(nèi)核圖二
主流瀏覽器市場(chǎng)份額
前端工程師敲的代碼就是在這些瀏覽器解讀和執(zhí)行的,他們的差別也就是在代碼的解讀和執(zhí)行上。同樣一行代碼,不同的瀏覽器會(huì)有不同的解讀和呈現(xiàn),而且速度也不一樣,給人的體驗(yàn)也不一樣。而決定如何解釋和執(zhí)行代碼的核心就是瀏覽器的內(nèi)核。
前端用武之地瀏覽器以及ie內(nèi)核圖三
瀏覽器組成
如果把瀏覽器做個(gè)拆分,其組成部分主要有:用戶界面、瀏覽器引擎、渲染引擎、 網(wǎng)絡(luò) 、JS解釋器、UI后端、數(shù)據(jù)存儲(chǔ)7個(gè)部分。
1 用戶界面 - 包括地址欄、后退/前進(jìn)按鈕、書(shū)簽?zāi)夸浀龋簿褪撬吹降某擞脕?lái)顯示所請(qǐng)求頁(yè)面的主窗口之外的其他部分。
2 瀏覽器引擎 - 用來(lái)查詢及操作渲染引擎的接口
3 渲染引擎 - 用來(lái)顯示請(qǐng)求的內(nèi)容,例如,如果請(qǐng)求內(nèi)容為html,它負(fù)責(zé)解析html及css,并將解析后的結(jié)果顯示出來(lái)。
4 網(wǎng)絡(luò) - 用來(lái)完成網(wǎng)絡(luò)調(diào)用,例如http請(qǐng)求,它具有平臺(tái)無(wú)關(guān)的接口,可以在不同平臺(tái)上工作。
5 UI后端 - 用來(lái)繪制類似組合選擇框及對(duì)話框等基本組件,具有不特定于某個(gè)平臺(tái)的通用接口,底層使用操作系統(tǒng)的用戶接口。
6 JS解釋器 - 用來(lái)解釋執(zhí)行JS代碼。
7 數(shù)據(jù)存儲(chǔ) - 屬于持久層,瀏覽器需要在硬盤(pán)中保存類似cookie的各種數(shù)據(jù),HTML5定義了web database技術(shù),這是一種輕量級(jí)完整的客戶端存儲(chǔ)技術(shù)。
瀏覽器內(nèi)核
做過(guò)設(shè)計(jì)尤其是3D動(dòng)畫(huà)的人對(duì)渲染這個(gè)詞應(yīng)該不陌生。瀏覽器內(nèi)核,其實(shí)就是瀏覽器的渲染引擎,英文叫“Rendering Engine”,它是瀏覽器的核心。渲染引擎負(fù)責(zé)對(duì)網(wǎng)頁(yè)代碼的解釋并按照規(guī)則渲染出顯示器上的網(wǎng)頁(yè)。網(wǎng)頁(yè)怎么顯示,完全由它說(shuō)了算。
四個(gè)內(nèi)核以及已它為基礎(chǔ)的瀏覽器:
(1)Trident內(nèi)核,由于被微軟采用,并得益于微軟操作系統(tǒng)的普及,以前幾乎一統(tǒng)天下,所以又稱為“IE內(nèi)核”,主要瀏覽器有IE系列瀏覽器;
(2)Gecko內(nèi)核,因?yàn)楸籑ozilla FireFox瀏覽器采用并得到開(kāi)發(fā)者的進(jìn)一步豐富,又被稱為“Firefox內(nèi)核”;
(3)WebKit內(nèi)核,是Safari瀏覽器使用的內(nèi)核,由Apple研發(fā)。 Google Chrome、Opera及各種國(guó)產(chǎn)瀏覽器高速模式也使用Webkit作為內(nèi)核。
(4)Blink內(nèi)核,由Google和Opera Software共同開(kāi)發(fā)的瀏覽器內(nèi)核,現(xiàn)在Chrome(28及往后版本)、Opera(15及往后版本)都將Webkit內(nèi)核換成了Blink內(nèi)核。
一般來(lái)說(shuō),一個(gè)瀏覽器采用一個(gè)內(nèi)核。但是國(guó)內(nèi)的開(kāi)發(fā)者腦洞比較大,開(kāi)創(chuàng)性發(fā)明了雙核瀏覽器。360瀏覽器、獵豹瀏覽器都是采用IE+Chrome雙內(nèi)核,搜狗、遨游、QQ瀏覽器也是雙內(nèi)核:Trident(兼容模式)+Webkit(高速模式); UC瀏覽器電腦版采用Blink內(nèi)核和Trident內(nèi)核,百度瀏覽器、世界之窗內(nèi)核都是單核(IE內(nèi)核)。
另外,瀏覽器內(nèi)核另外一個(gè)很重要的部分就是JS引擎,之前JS引擎也被集成在內(nèi)核中,但是隨著JS引擎越來(lái)越獨(dú)立,慢慢瀏覽器內(nèi)核就是只渲染引擎了。
以上介紹了目前我們熟悉的瀏覽器產(chǎn)品,以及瀏覽器內(nèi)核簡(jiǎn)介,下一次探討真正核心的部分,也是和前端開(kāi)發(fā)最相關(guān)的部分——ie內(nèi)核。