IE瀏覽器
- 會先渲染Html,等css文件下載完后再重新渲染
- FOUC:Flash of unstyled content
Chrome瀏覽器
- css阻塞渲染:在瀏覽器遇到css文件鏈接下載時,停止渲染只解析。與此同時,下載css文件幾乎同時預下載后面的文件,下載完后才繼續渲染。
為什么css文件寫在前面,script寫在后面?
- 為了好看,不出現FOUC,避免頁面閃爍。
- 讓頁面被阻塞時間減少
- 不會太影響用戶體驗,可能會獲取不到html元素
解決方法
- 可以把首頁用不到的 CSS 放到后面,這樣既能減少阻塞時間,又不出現閃爍。
結論
- CSS 和 JS 都會阻塞頁面渲染,但不會阻塞解析
- Chrome 要等所有 CSS 下載完了,才開始渲染頁面(除了動態加載的 CSS)
- IE 看到標簽就渲染,不等后面的 CSS 下載
- JS 不會阻塞它前面的標簽的渲染
- css可能會影響瀏覽器元素渲染,js不會