瀏覽器渲染機(jī)制

HTML頁(yè)面加載和解析流程
(1). 用戶輸入網(wǎng)址(假設(shè)是個(gè)html頁(yè)面,并且是第一次訪問(wèn)),瀏覽器向服務(wù)器發(fā)出請(qǐng)求,服務(wù)器返回html文件;
(2). 瀏覽器開(kāi)始載入html代碼滑肉,發(fā)現(xiàn)<head>標(biāo)簽內(nèi)有一個(gè)<link>標(biāo)簽引用外部CSS文件;
(3). 瀏覽器又發(fā)出CSS文件的請(qǐng)求摘仅,服務(wù)器返回這個(gè)CSS文件靶庙;
(4). 瀏覽器繼續(xù)載入html中<body>部分的代碼,并且CSS文件已經(jīng)拿到手了实檀,可以開(kāi)始渲染頁(yè)面了惶洲;
(5). 瀏覽器在代碼中發(fā)現(xiàn)一個(gè)<img>標(biāo)簽引用了一張圖片,向服務(wù)器發(fā)出請(qǐng)求膳犹。此時(shí)瀏覽器不會(huì)等到圖片下載完恬吕,而是繼續(xù)渲染后面的代碼;
(6). 服務(wù)器返回圖片文件须床,由于圖片占用了一定面積铐料,影響了后面段落的排布,因此瀏覽器需要回過(guò)頭來(lái)重新渲染這部分代碼豺旬;
(7). 瀏覽器發(fā)現(xiàn)了一個(gè)包含一行Javascript代碼的<script>標(biāo)簽钠惩,趕快運(yùn)行它;
(8). Javascript腳本執(zhí)行了這條語(yǔ)句族阅,它命令瀏覽器隱藏掉代碼中的某個(gè)<div> (style.display=”none”)篓跛。突然少了這么一個(gè)元素,瀏覽器不得不重新渲染這部分
代碼坦刀;
(9). 終于等到了</html>的到來(lái)愧沟,瀏覽器淚流滿面……
(10). 等等,還沒(méi)完鲤遥,用戶點(diǎn)了一下界面中的“換膚”按鈕沐寺,Javascript讓瀏覽器換了一下<link>標(biāo)簽的CSS路徑;
(11). 瀏覽器召集了在座的各位<div><span><ul><li>們盖奈,“大伙兒收拾收拾行李混坞,咱得重新來(lái)過(guò)……”,瀏覽器向服務(wù)器請(qǐng)求了新的CSS文件,重新渲染頁(yè)面究孕。

上述這個(gè)過(guò)程是逐步完成的啥酱,為了更好的用戶體驗(yàn),渲染引擎將會(huì)盡可能早的將內(nèi)容呈現(xiàn)到屏幕上厨诸,并不會(huì)等到所有的html都解析完成之后再去構(gòu)建和布局render樹(shù)懈涛。
它是解析完一部分內(nèi)容就顯示一部分內(nèi)容,同時(shí)泳猬,可能還在通過(guò)網(wǎng)絡(luò)下載其余內(nèi)容。

javascript的加載和執(zhí)行的特點(diǎn):
(1)載入后馬上執(zhí)行宇植;
(2)執(zhí)行時(shí)會(huì)阻塞頁(yè)面后續(xù)的內(nèi)容(包括頁(yè)面的渲染得封、其它資源的下載)。原因:因?yàn)闉g覽器需要一個(gè)穩(wěn)定的DOM樹(shù)結(jié)構(gòu)指郁,而JS中很有可能有 代碼直接改變了DOM樹(shù)結(jié)構(gòu)忙上,
比如使用 document.write 或 appendChild,甚至是直接使用的location.href進(jìn)行跳轉(zhuǎn),瀏覽器為了防止出現(xiàn)JS修 改DOM樹(shù)闲坎,需要重新構(gòu)建DOM樹(shù)的情況疫粥,
所以 就會(huì)阻塞其他的下載和呈現(xiàn)。

(1)Reflow(回流):瀏覽器要花時(shí)間去渲染腰懂,當(dāng)它發(fā)現(xiàn)了某個(gè)部分發(fā)生了變化影響了布局梗逮,那就需要倒回去重新渲染。
(2)Repaint(重繪):如果只是改變了某個(gè)元素的背景顏色绣溜,文字顏色等慷彤,不影響元素周圍或內(nèi)部布局的屬性,將只會(huì)引起瀏覽器的repaint怖喻,重畫(huà)某一部分底哗。
Reflow要比Repaint更花費(fèi)時(shí)間

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市锚沸,隨后出現(xiàn)的幾起案子跋选,更是在濱河造成了極大的恐慌,老刑警劉巖哗蜈,帶你破解...
    沈念sama閱讀 217,826評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件前标,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡恬叹,警方通過(guò)查閱死者的電腦和手機(jī)候生,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)绽昼,“玉大人唯鸭,你說(shuō)我怎么就攤上這事」枞罚” “怎么了目溉?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,234評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵明肮,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我缭付,道長(zhǎng)柿估,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,562評(píng)論 1 293
  • 正文 為了忘掉前任陷猫,我火速辦了婚禮秫舌,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘绣檬。我一直安慰自己足陨,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,611評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布娇未。 她就那樣靜靜地躺著墨缘,像睡著了一般。 火紅的嫁衣襯著肌膚如雪零抬。 梳的紋絲不亂的頭發(fā)上镊讼,一...
    開(kāi)封第一講書(shū)人閱讀 51,482評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音平夜,去河邊找鬼蝶棋。 笑死,一個(gè)胖子當(dāng)著我的面吹牛忽妒,可吹牛的內(nèi)容都是我干的嚼松。 我是一名探鬼主播,決...
    沈念sama閱讀 40,271評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼锰扶,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼献酗!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起坷牛,我...
    開(kāi)封第一講書(shū)人閱讀 39,166評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤罕偎,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后京闰,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體颜及,經(jīng)...
    沈念sama閱讀 45,608評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,814評(píng)論 3 336
  • 正文 我和宋清朗相戀三年蹂楣,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了俏站。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,926評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡痊土,死狀恐怖肄扎,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤犯祠,帶...
    沈念sama閱讀 35,644評(píng)論 5 346
  • 正文 年R本政府宣布旭等,位于F島的核電站,受9級(jí)特大地震影響衡载,放射性物質(zhì)發(fā)生泄漏搔耕。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,249評(píng)論 3 329
  • 文/蒙蒙 一痰娱、第九天 我趴在偏房一處隱蔽的房頂上張望弃榨。 院中可真熱鬧,春花似錦梨睁、人聲如沸惭墓。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,866評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至划咐,卻和暖如春拴念,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背褐缠。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,991評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工政鼠, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人队魏。 一個(gè)月前我還...
    沈念sama閱讀 48,063評(píng)論 3 370
  • 正文 我出身青樓公般,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親胡桨。 傳聞我的和親對(duì)象是個(gè)殘疾皇子官帘,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,871評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容