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