1. 程式人生 > >(二)css、js 的載入與執行

(二)css、js 的載入與執行

1:一個網站在瀏覽器端是如何進行渲染的呢?

2: HTML渲染過程的一些特點

(1)順序執行、併發載入

順序執行:運用詞法分析能力從頭開始順序解析,

併發載入:引入的外部資源,css,js,可以進行優化,單個域名併發載入有限,CDN上設定三到四個。

(2)是否阻塞 (css載入是否阻塞js載入,==)

css head中阻塞頁面的渲染 避免頁面的閃動:在CSS載入完後,DOM樹有樣式的

css阻塞js的執行 css載入完會會js阻塞,js可能對css樣式操作

css不阻塞外部指令碼的載入  預資源載入器

 

js阻塞:

直接引入的js阻塞頁面的渲染  (onload事件)

js不阻塞資源的載入

js順序執行,阻塞後續js邏輯的執行(單執行緒)

 

(3)依賴關係

頁面渲染依賴於css的載入

js的執行順序的依賴關係

js邏輯對於dom節點的依賴關係

(4)引入方式

Css:Link,import,     直接引入 defer  async非同步動態引入js

 

載入和執行的一些優化點:

(1)css 樣式表置頂

(2)用 link 代替 import 

(3)js 指令碼置底

(4)合理使用 js 的非同步載入能力

 

3:懶載入和預載入

   懶載入:(1)圖片進入可視區域之後請求資源,對於電商,頁面很長的場景,減少無效的資源載入(單頁應用,觀看的時候才去載入),(2)併發載入的資源過多會影響網站的正常使用。

  具體實現懶載入:圖片的src的地址被改變的時候被載入。監聽滑動的事件,當圖片進入可視區域的時候才去載入。

  預載入:與懶載入相反,預載入靜態資源使用之前提前進行請求。直接從快取中進行載入,不需要傳送請求。

   懶載入實踐:

   

  

預載入實踐: