瀏覽器加載資源順序?

預先知識:

瀏覽器加載的時候是自上而下的,加載和渲染爲同步進行

加載不會阻塞下載,解析會阻塞下載

js解析的時候會阻塞其他的加載

一般瀏覽器會在後面解析js文件,因爲js中的代碼很有可能改變dom樹的結構

 

瀏覽器的加載一般順序爲:

  1. 將資源分類
  2. 安全策略檢查
  3. 資源優先級計算
  4. 根據優先級下載資源

 

資源分類:

  • 主資源 html
  • 圖片
  • css
  • js
  • 字體
  • ajax
  • svg
  • 引入的html資源
  • 多媒體資源,視頻等

 

瀏覽器加載資源的順序:

  • 最高級:html,css,font
  • 然後:js,xhr
  • 然後是多媒體:圖片-語音-視頻
  • 最後:prefetch預加載的資源

根據實際的規則,瀏覽器會對加載的資源順序有所調整:

  • 同步的xhr請求優先級最高
  • 如果圖片的視圖在可見範圍之內,優先加載圖片

 

測試:

<!DOCTYPE html>

<head>
  <link rel="stylesheet" type="text/css" href="./index.css">
  <script type="text/javascript"></script>
</head>

<body>
  <embed height="100" width="100" src="./img/music/1.mp3"></embed>
  <img src="./img/1.png">
  <img src="./img/2.png">
  <img src="./img/3.png">
  <img src="./img/4.png">
  <img src="./img/5.png">
  <img src="./img/6.png">
  <img src="./img/7.png">
  <img src="./img/8.png">
  <img src="./img/9.png">
  <script type="text/javascript" src="./index.js"></script>
  <script type="text/javascript">
  </script>
</body>

</html>

chrome瀏覽器中查看解析執行的順序:

 

雖然mp3文件放在了img的前面,但是解析的時候還是優先解析了圖片資源。此時的圖片在可視的視圖之內。

由此可見,瀏覽器解析資源的一般順序爲:

html → css → 可視化圖片 → js → 媒體 → ...

 

待續...

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章