1.CSS和JS在網(wǎng)頁(yè)中的放置順序是怎樣的?
css放置與<header>處,JS放置在<body>的末尾
2.解釋白屏和FOUC
- 白屏:CSS在HTML之后加載便會(huì)出現(xiàn)白屏現(xiàn)象
- FOUC(無(wú)樣式內(nèi)容閃爍):加載一部分CSS內(nèi)容便進(jìn)行對(duì)應(yīng)DOM的渲染,而不是等CSS完全加載后渲染
3.async和defer的作用是什么?有什么區(qū)別
- 作用:并行加載
- async:加載和渲染后續(xù)文檔元素的過(guò)程將和js的加載與執(zhí)行并行進(jìn)行
- defer:加載和渲染后續(xù)文檔元素的過(guò)程將和js的加載與執(zhí)行并行進(jìn)行,但js的執(zhí)行要在所有元素解析完成之后,DOMContentLoaded時(shí)間觸發(fā)之前完成
- 區(qū)別:js執(zhí)行的時(shí)間點(diǎn)有點(diǎn)區(qū)別
4.簡(jiǎn)述網(wǎng)頁(yè)的渲染機(jī)制
- 解析HTML標(biāo)簽,構(gòu)建DOM樹(shù)
- 解析CSS標(biāo)簽,構(gòu)建CSSOM樹(shù)
- 把DOM和CSSOM組合成渲染樹(shù)(render tree)
- 在渲染樹(shù)的基礎(chǔ)上進(jìn)行布局,計(jì)算每個(gè)節(jié)點(diǎn)的幾何結(jié)構(gòu)
- 把每個(gè)節(jié)點(diǎn)繪制到屏幕上