頁面的加載與渲染順序:
1.一個頁面的加載順序是從上到下順序加載的,並且加載與渲染同時進行。
2.引用外部js文件時,當在加載過程中遇到<script>標簽時,瀏覽器會向服務器發送一個reques並等待該request的返回。
因為瀏覽器需要1個穩定的DOM樹結構,而JS中很有可能有代碼直接改變了DOM樹結構,比如使用document.write 或 appendChild,甚至是直接使用的location.href進行跳轉,瀏覽器為了防止出現JS修改DOM樹,需要重新構建DOM樹的情況,所以加載js就會阻塞其后內容的下載和呈現。
3.使用嵌入式js時,會阻塞所有內容的呈現。
4.當在加載過程中遇到<style>標簽時,瀏覽器會發1個request去請求CSS或image,然后繼續執行下面的轉換,而不需要等待request的返回,當request返回后,只需要把返回的內容放入到DOM樹中對應的位置就OK,所以正常來說CSS並不會諸塞頁面。
但是也有例外:
當CSS后面跟着嵌入的JS的時候,該CSS就會出現阻塞后面資源下載的情況。
原因:
因為瀏覽器會維持html中css和js的順序,樣式表必須在嵌入的JS執行前先加載、解析完。而嵌入的JS會阻塞后面的資源加載,所以就會出現上面CSS阻塞下載的情況。
————————————————
版權聲明:本文為CSDN博主「圓㺭」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/chang_yuan_2011/article/details/7497458