1. 程式人生 > 其它 >JavaScript指令碼延遲載入的方式有哪些?

JavaScript指令碼延遲載入的方式有哪些?

延遲載入就是等頁面載入完成之後再載入 JavaScript 檔案。 js 延遲載入有助於提高頁面載入速度。

一般有以下幾種方式:

  • defer 屬性: 給 js 指令碼新增 defer 屬性,這個屬性會讓指令碼的載入與文件的解析同步解析,然後在文件解析完成後再執行這個指令碼檔案,這樣的話就能使頁面的渲染不被阻塞。多個設定了 defer 屬性的指令碼按規範來說最後是順序執行的,但是在一些瀏覽器中可能不是這樣。
  • async 屬性: 給 js 指令碼新增 async 屬性,這個屬性會使指令碼非同步載入,不會阻塞頁面的解析過程,但是當指令碼載入完成後立即執行 js 指令碼,這個時候如果文件沒有解析完成的話同樣會阻塞。多個 async 屬性的指令碼的執行順序是不可預測的,一般不會按照程式碼的順序依次執行。
  • 動態建立 DOM 方式: 動態建立 DOM 標籤的方式,可以對文件的載入事件進行監聽,當文件載入完成後再動態的建立 script 標籤來引入 js 指令碼。
  • 使用 setTimeout 延遲方法: 設定一個定時器來延遲載入js指令碼檔案
  • 讓 JS 最後載入: 將 js 指令碼放在文件的底部,來使 js 指令碼儘可能的在最後來載入執行。