進(jìn)階一

CSS和JS在網(wǎng)頁中的放置順序是怎樣的?

css放置于head里,
js放到body的末尾部分 外鏈用<script src=""></script>,內(nèi)部的用<script></script>

解釋白屏和FOUC

白屏和fouc 跟瀏覽器的渲染機(jī)制 有關(guān),不算是bug。白屏是css放到body之后,谷歌瀏覽器會將html的DOM樹和css的 CSSOM樹構(gòu)建好之后,在展現(xiàn)頁面,如果css和html內(nèi)容較多,導(dǎo)致繪制比較慢,就會出現(xiàn)白屏,當(dāng)然@import 和css用link放到head里也會出現(xiàn)白屏,建議將css用link放到head里。
fouc :火狐瀏覽器是將先將html樹構(gòu)建好繪制到頁面,在逐漸加載css,重新繪制一次頁面,直到css加載完畢。

async和defer的作用是什么?有什么區(qū)別

async不保證順序,在加載和渲染的過程中,將和script.js的加載與執(zhí)行,并行執(zhí)行。
defer :腳本延遲到文檔解析和顯示后執(zhí)行,等所有的元素解析完后之后。

簡述網(wǎng)頁的渲染機(jī)制

網(wǎng)頁=HTML(網(wǎng)頁元素內(nèi)容)+css(控制網(wǎng)頁樣式)+JavaScript(操作網(wǎng)頁內(nèi)容),實(shí)現(xiàn)功能或者效果。
瀏覽器渲染:解析HTML標(biāo)簽,構(gòu)建DOM樹, 同時解析CSS標(biāo)簽,構(gòu)建CSSOM樹,把DOM和cssOM組合成渲染書,先解析html標(biāo)簽,然后看css樣式,如果沒有就用默認(rèn)樣式,再去加載body標(biāo)簽,解析對應(yīng)的css標(biāo)簽一次類推,都解析完后,再渲染樹 的基礎(chǔ)上進(jìn)行布局,計算每個節(jié)點(diǎn)的幾何結(jié)構(gòu),,把每個節(jié)點(diǎn)繪制到屏幕上。

Paste_Image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容