網(wǎng)頁(yè)的渲染機(jī)制

1.CSS和JS在網(wǎng)頁(yè)中的放置順序

CSS需要放在head內(nèi)刻恭,一般用link標(biāo)簽引入外部樣式尸执,或者直接將CSS寫(xiě)在style標(biāo)簽內(nèi)峰伙;js一般放在body內(nèi)的最后新翎,用script標(biāo)簽包裹程帕。

2.白屏和FOUC現(xiàn)象

如果把樣式放在底部住练,對(duì)于IE瀏覽器,在某些場(chǎng)景下(新窗口打開(kāi)骆捧、刷新等)頁(yè)面會(huì)出現(xiàn)白屏,而不是內(nèi)容逐步展現(xiàn)澎羞;
如果使用 @import 標(biāo)簽,即使 CSS 放入 link敛苇,并且放在頭部,也可能出現(xiàn)白屏妆绞。
對(duì)于圖片和CSS,在加載時(shí)會(huì)并發(fā)加載(如一個(gè)域名下同時(shí)加載兩個(gè)文件)枫攀。 但在加載 JavaScript 時(shí),會(huì)禁用并發(fā)括饶,并且阻止其他內(nèi)容的下載。 所以把 JavaScript 放入頁(yè)面頂部也會(huì)導(dǎo)致白屏現(xiàn)象来涨。
如果把樣式放在底部图焰,對(duì)于IE瀏覽器,在某些場(chǎng)景下(點(diǎn)擊鏈接,輸入U(xiǎn)RL蹦掐,使用書(shū)簽進(jìn)入等)技羔,會(huì)出現(xiàn) FOUC 現(xiàn)象(逐步加載無(wú)樣式的內(nèi)容,等CSS加載后頁(yè)面突然展現(xiàn)樣式)卧抗。對(duì)于 Firefox 會(huì)一直表現(xiàn)出 FOUC藤滥。

3.async和defer的作用和區(qū)別

1.沒(méi)有 defer 或 async,瀏覽器會(huì)立即加載并執(zhí)行指定的腳本社裆,“立即”指的是在渲染該 script 標(biāo)簽之下的文檔元素之前拙绊,也就是說(shuō)不等待后續(xù)載入的文檔元素,讀到就加載并執(zhí)行泳秀。
2.有 async标沪,加載和渲染后續(xù)文檔元素的過(guò)程將和 script.js 的加載與執(zhí)行并行進(jìn)行(異步)。
3.有 defer嗜傅,加載后續(xù)文檔元素的過(guò)程將和 script.js 的加載并行進(jìn)行(異步)金句,但是 script.js 的執(zhí)行要在所有元素解析完成之后,DOMContentLoaded 事件觸發(fā)之前完成吕嘀。
區(qū)別:defer:腳本延遲到文檔解析和顯示后執(zhí)行违寞,有順序;
async:不保證順序币他。

4.網(wǎng)頁(yè)的渲染機(jī)制

當(dāng)瀏覽器獲得html文件后坞靶,會(huì)自上而下的加載憔狞,并在加載過(guò)程中進(jìn)行解析和渲染蝴悉。
加載說(shuō)的就是獲取資源文件的過(guò)程,如果在加載的過(guò)程中瘾敢,遇到外部css文件和圖片拍冠,瀏覽器會(huì)另外發(fā)出一個(gè)請(qǐng)求尿这,來(lái)獲取css文件和相應(yīng)的圖片,這個(gè)請(qǐng)求是異步的庆杜,并不會(huì)影響html文件射众。
但是如果遇到JavaScript文件,html文件會(huì)掛起渲染的線程晃财,等待javascript加載完畢后叨橱,html文件再繼續(xù)渲染。因?yàn)閖avascript可能會(huì)修改DOM断盛,導(dǎo)致后續(xù)的html資源白白加載罗洗,所以html必須等待javascript文件加載完畢后,再繼續(xù)渲染钢猛。這就是javascript文件要寫(xiě)在底部body標(biāo)簽前的原因伙菜。
html的渲染過(guò)程就是將html代碼按照深度優(yōu)先遍歷來(lái)生成DOM樹(shù)。
css文件下載完后也會(huì)進(jìn)行渲染命迈,生成相應(yīng)的CSSOM贩绕。
當(dāng)所有的css文件下載完且所有的CSSOM構(gòu)建結(jié)束后,就會(huì)和DOM一起生成Render Tree壶愤。
接下來(lái)淑倾,瀏覽器就會(huì)進(jìn)入Layout環(huán)節(jié),將所有的節(jié)點(diǎn)位置計(jì)算出來(lái)公你。
最后踊淳,通過(guò)Painting環(huán)節(jié)將所有的節(jié)點(diǎn)內(nèi)容呈現(xiàn)到屏幕上。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末陕靠,一起剝皮案震驚了整個(gè)濱河市迂尝,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌剪芥,老刑警劉巖垄开,帶你破解...
    沈念sama閱讀 212,383評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異税肪,居然都是意外死亡溉躲,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)益兄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)锻梳,“玉大人,你說(shuō)我怎么就攤上這事净捅∫煽荩” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,852評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵蛔六,是天一觀的道長(zhǎng)荆永。 經(jīng)常有香客問(wèn)我废亭,道長(zhǎng),這世上最難降的妖魔是什么具钥? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,621評(píng)論 1 284
  • 正文 為了忘掉前任豆村,我火速辦了婚禮,結(jié)果婚禮上骂删,老公的妹妹穿的比我還像新娘掌动。我一直安慰自己,他們只是感情好宁玫,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,741評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布坏匪。 她就那樣靜靜地躺著,像睡著了一般撬统。 火紅的嫁衣襯著肌膚如雪适滓。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,929評(píng)論 1 290
  • 那天恋追,我揣著相機(jī)與錄音凭迹,去河邊找鬼。 笑死苦囱,一個(gè)胖子當(dāng)著我的面吹牛嗅绸,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播撕彤,決...
    沈念sama閱讀 39,076評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼鱼鸠,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了羹铅?” 一聲冷哼從身側(cè)響起蚀狰,我...
    開(kāi)封第一講書(shū)人閱讀 37,803評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎职员,沒(méi)想到半個(gè)月后麻蹋,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,265評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡焊切,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,582評(píng)論 2 327
  • 正文 我和宋清朗相戀三年扮授,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片专肪。...
    茶點(diǎn)故事閱讀 38,716評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡刹勃,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出嚎尤,到底是詐尸還是另有隱情荔仁,我是刑警寧澤,帶...
    沈念sama閱讀 34,395評(píng)論 4 333
  • 正文 年R本政府宣布,位于F島的核電站咕晋,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏收奔。R本人自食惡果不足惜掌呜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,039評(píng)論 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望坪哄。 院中可真熱鬧质蕉,春花似錦、人聲如沸翩肌。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,798評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)念祭。三九已至兑宇,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間粱坤,已是汗流浹背隶糕。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,027評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留站玄,地道東北人枚驻。 一個(gè)月前我還...
    沈念sama閱讀 46,488評(píng)論 2 361
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像株旷,于是被迫代替她去往敵國(guó)和親再登。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,612評(píng)論 2 350

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