1:css和js在網(wǎng)頁中的放置位置作谭?
css樣式放在head中源哩;js放置在body標(biāo)簽內(nèi)的最后(防止阻塞后面內(nèi)容的呈現(xiàn)鞋吉,防止阻塞氣候組件的下載),圖片和css励烦,會并發(fā)加載谓着,而JavaScript會禁止并發(fā);
2:解釋白屏和FOUC
解析html標(biāo)簽坛掠,構(gòu)建DOM樹漆魔,解析CSS標(biāo)簽,構(gòu)建CSSOM樹,把DOM和CSSOM組合成渲染樹(render tree)却音,calculate(計算)節(jié)點幾何結(jié)構(gòu)改抡,painting;白屏:瀏覽器在渲染的時候請求時間過長導(dǎo)致系瓢,使用@import()屬性也可能導(dǎo)致渲染不及時阿纤。
FOUC現(xiàn)象(逐步加載無樣式的內(nèi)容,等加載后(CSS)頁面突然展現(xiàn)樣式)
Chrome:等待渲染樹和位置計算好才會出來網(wǎng)頁的內(nèi)容夷陋;
FireFox:沒加載一次DOM樹就會重繪網(wǎng)頁樣式欠拾,知道所有的內(nèi)容完成為止;
3:async和defer的作用骗绕?
async:加載和渲染后續(xù)文檔元素的過程將和script.js的加載與執(zhí)行并發(fā)進(jìn)行(異步)藐窄;
defer:異步,但script.js的執(zhí)行要在所有元素解析完成之后酬土,DoMcontentLoaded事件觸發(fā)之前完成荆忍;
前者無順序,后者有撤缴;
4:簡述網(wǎng)頁的渲染機(jī)制刹枉?
題二答案!
HTML>>DOM>>CSS>>CSSOM>>Rreder tree>>calculate>>painting;