首頁 > 軟體

js延遲載入的6種方式範例總結

2023-04-02 06:01:05

1. defer 屬性

HTML 4.01 為<script>標籤定義了defer屬性。標籤定義了defer屬性元素中設定defer屬性,等於告訴瀏覽器立即下載,但延遲執行標籤定義了defer屬性。

用途:表明指令碼在執行時不會影響頁面的構造。也就是說,指令碼會被延遲到整個頁面都解析完畢之後再執行。

在<script>元素中設定defer屬性,等於告訴瀏覽器立即下載,但延遲執行

說明:雖然<script>元素放在了<head>元素中,但包含的指令碼將延遲瀏覽器遇到</html>標籤後再執行。

HTML5規範要求指令碼按照它們出現的先後順序執行。在現實當中,延遲指令碼並不一定會按照順序執行。

defer屬性只適用於外部指令碼檔案。支援 HTML5 的實現會忽略嵌入指令碼設定的defer屬性。

2. async 屬性

HTML5 為<script>標籤定義了async屬性。與defer屬性類似,都用於改變處理指令碼的行為。同樣,只適用於外部指令碼檔案。標籤定義了async屬性。與defer屬性類似,都用於改變處理指令碼的行為。同樣,只適用於外部指令碼檔案

目的:不讓頁面等待指令碼下載和執行,從而非同步載入頁面其他內容

非同步指令碼一定會在頁面 load 事件前執行。

不能保證指令碼會按順序執行。

async和defer一樣,都不會阻塞其他資源下載,所以不會影響頁面的載入。

缺點:不能控制載入的順序

3.動態建立DOM方式

4.使用jQuery的getScript()方法

5.使用setTimeout延遲方法的載入時間

延遲載入js程式碼,給網頁載入留出更多時間

6.讓JS最後載入

把js外部引入的檔案放到頁面底部,來讓js最後引入,從而加快頁面載入速度

例如引入外部js指令碼檔案時,如果放入html的head中,則頁面載入前該js指令碼就會被載入入頁面,而放入body中,則會按照頁面從上倒下的載入順序來執行JavaScript的程式碼

所以我們可以把js外部引入的檔案放到頁面底部,來讓js最後引入,從而加快頁面載入速度

3.上述方法2也會偶爾讓你收到Google頁面速度測試工具的“延遲載入javascript”警告。所以這裡的解決方案將是來自Google幫助頁面的推薦方案。

這段程式碼意思等到整個檔案載入完後,再載入外部檔案“defer.js”。

使用此段程式碼的步驟:

1).複製上面程式碼

2).貼上程式碼到HTML的標籤前 (靠近HTML檔案底部)

3).修改“defer.js”為你的外部JS檔名

4).確保你檔案路徑是正確的。例如:如果你僅輸入“defer.js”,那麼“defer.js”檔案一定與HTML檔案在同一資料夾下。

注意:

這段程式碼直到檔案載入完才會載入指定的外部js檔案。因此,不應該把那些頁面正常載入需要依賴的javascript程式碼放在這裡。而應該將JavaScript程式碼分成兩組。一組是因頁面需要而立即載入的javascript程式碼,另外一組是在頁面載入後進行操作的javascript程式碼(例如新增click事件或其他東西)。這些需等到頁面載入後再執行的JavaScript程式碼,應放在一個外部檔案,然後再引進來。

在元素中設定defer屬性,等於告訴瀏覽器立即下載,但延遲執行元素中設定defer屬性,等於告訴瀏覽器立即下載,但延遲執行元素中設定defer屬性,等於告訴瀏覽器立即下載,但延遲執行

總結

到此這篇關於js延遲載入的6種方式的文章就介紹到這了,更多相關js延遲載入方式內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com