摘要:在這個(gè)過程中,中可能會(huì)通過去引入其他相應(yīng)的資源,比如的資源,這個(gè)時(shí)候?yàn)g覽器可能就會(huì)兵法的向服務(wù)器去請(qǐng)求這個(gè)相關(guān)的靜態(tài)資源,請(qǐng)求回來后通過解析器對(duì)其進(jìn)行解析,從而生成一個(gè)樹,去和樹進(jìn)行結(jié)合生成一個(gè),進(jìn)一步的進(jìn)行一個(gè)布局,最終進(jìn)行繪制。
網(wǎng)頁內(nèi)容的組成
doctype: 提供瀏覽器的html版本信息
head : html頭部
meta: 元數(shù)據(jù)信息
charset: 聲明當(dāng)前文檔所實(shí)用的字符編碼
http-equiv: 客戶端行為,如渲染模式,緩存等
name[keywords]: 搜索引擎關(guān)鍵字
name[description]: 搜索引擎描述
name[viewport]: 瀏覽器視口設(shè)置
link
script: 需要在body前完成加載或運(yùn)行的腳本
body: html實(shí)體
script: 需要在body解析時(shí)加載或運(yùn)行的腳本
渲染需要做的工作通過上面的圖可以知道,網(wǎng)頁內(nèi)容首先會(huì)被html解析器解析成一個(gè)DOM樹,實(shí)際上html是我們最先會(huì)通過網(wǎng)址向服務(wù)器請(qǐng)求回來的,請(qǐng)求回來的html從字節(jié)流轉(zhuǎn)成字符流,我們的瀏覽器實(shí)際拿到的就是一個(gè)字符流,然后瀏覽器通過詞法分析對(duì)輸入字節(jié)流進(jìn)行逐字掃描,根據(jù)構(gòu)詞規(guī)則識(shí)別單詞和符號(hào),分詞,生成相應(yīng)的token,之后會(huì)將這些token通過nextToken()添加到dom樹中去。所以html解析是從上到下對(duì)文檔進(jìn)行一個(gè)此法分析,所以它首先遇到html標(biāo)簽的時(shí)候會(huì)對(duì)html生成一個(gè)token,這個(gè)token會(huì)被標(biāo)記成一個(gè)startTag的類型,對(duì)于header的花也會(huì)被標(biāo)記成startTag,但是它會(huì)聲稱為headerToken,就是說對(duì)于不同類型的html標(biāo)簽格式,在詞法分析的過程中,會(huì)解析成一個(gè)相應(yīng)的對(duì)象,然后token類型會(huì)被瀏覽器解析,最后會(huì)將token類型append到dom樹上去。
在這個(gè)過程中,html中可能會(huì)通過link去引入其他相應(yīng)的資源,比如css的資源,這個(gè)時(shí)候?yàn)g覽器可能就會(huì)兵法的向服務(wù)器去請(qǐng)求這個(gè)相關(guān)的靜態(tài)資源,請(qǐng)求回來后通過css解析器對(duì)其進(jìn)行解析,從而生成一個(gè)css樹,去和dom樹進(jìn)行結(jié)合生成一個(gè)render Tree,進(jìn)一步的進(jìn)行一個(gè)布局,最終進(jìn)行繪制。
加載css的加載不會(huì)阻塞dom解析,但是會(huì)阻塞頁面渲染,所以一般把css加載放在頭部
css會(huì)去阻塞js的執(zhí)行,就是說css資源在加載完之前,js的執(zhí)行會(huì)被阻塞,但是css不會(huì)阻塞js腳本的加載
js會(huì)去阻塞頁面dom的解析
js不阻塞資源的加載
js順序執(zhí)行,阻塞后續(xù)js邏輯的執(zhí)行
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/53326.html
摘要:原文鏈接瀏覽器渲染那些事之瀏覽器內(nèi)核渲染引擎在各個(gè)瀏覽器廠商你追我趕的形勢(shì)下,截止今日,產(chǎn)生了很多不同的瀏覽器,各個(gè)瀏覽器本質(zhì)大同小異,核心部分基本相似,由渲染引擎和引擎組成。 原文鏈接 瀏覽器渲染那些事之 Reflow、Repaint 瀏覽器內(nèi)核(渲染引擎) 在各個(gè)瀏覽器廠商你追我趕的形勢(shì)下,截止今日,產(chǎn)生了很多不同的瀏覽器,各個(gè)瀏覽器本質(zhì)大同小異,核心部分基本相似,由渲染引擎和 J...
摘要:前言瀏覽器的內(nèi)核是指支持瀏覽器運(yùn)行的最核心的程序,分為兩個(gè)部分的,一是渲染引擎,另一個(gè)是引擎。渲染引擎在不同的瀏覽器中也不是都相同的。接下來就是瀏覽器的渲染過程。布局完成后,瀏覽器會(huì)立即發(fā)出和事件,將渲染樹轉(zhuǎn)換成屏幕上的像素。 前言 瀏覽器的內(nèi)核是指支持瀏覽器運(yùn)行的最核心的程序,分為兩個(gè)部分的,一是渲染引擎,另一個(gè)是JS引擎。渲染引擎在不同的瀏覽器中也不是都相同的。目前市面上常見的瀏覽...
摘要:前言瀏覽器的內(nèi)核是指支持瀏覽器運(yùn)行的最核心的程序,分為兩個(gè)部分的,一是渲染引擎,另一個(gè)是引擎。渲染引擎在不同的瀏覽器中也不是都相同的。接下來就是瀏覽器的渲染過程。布局完成后,瀏覽器會(huì)立即發(fā)出和事件,將渲染樹轉(zhuǎn)換成屏幕上的像素。 前言 瀏覽器的內(nèi)核是指支持瀏覽器運(yùn)行的最核心的程序,分為兩個(gè)部分的,一是渲染引擎,另一個(gè)是JS引擎。渲染引擎在不同的瀏覽器中也不是都相同的。目前市面上常見的瀏覽...
摘要:由一道面試題引發(fā)的思考從用戶輸入瀏覽器輸入到頁面最后呈現(xiàn)有哪些過程一道很常規(guī)的題目,考的是基本網(wǎng)絡(luò)原理,和瀏覽器加載,過程。所以抽出時(shí)間研究下瀏覽器渲染頁面的過程。 由一道面試題引發(fā)的思考: 從用戶輸入瀏覽器輸入url到頁面最后呈現(xiàn) 有哪些過程?一道很常規(guī)的題目,考的是基本網(wǎng)絡(luò)原理,和瀏覽器加載css,js過程。 答案大致如下: 用戶輸入U(xiǎn)RL地址 瀏覽器解析URL解析出主機(jī)名 瀏覽...
摘要:響應(yīng)由三個(gè)部分組成,分別是狀態(tài)行消息報(bào)頭響應(yīng)正文。詳情參考小汪之前寫的文章瀏覽器內(nèi)核之解釋器和模型解釋解釋過程是指從字符串經(jīng)過解釋器處理后變成渲染引擎內(nèi)部規(guī)則的表示過程。 showImg(https://segmentfault.com/img/remote/1460000016404846); 前言 小汪最近在看【W(wǎng)ebKit 技術(shù)內(nèi)幕】一書,說實(shí)話,這本書寫的太官方了,不通俗易懂。...
閱讀 978·2023-04-26 00:37
閱讀 880·2021-11-24 09:39
閱讀 2293·2021-11-23 09:51
閱讀 4066·2021-11-22 15:24
閱讀 868·2021-10-19 11:46
閱讀 1933·2019-08-30 13:53
閱讀 2550·2019-08-29 17:28
閱讀 1423·2019-08-29 14:11