js延遲加載的6種方式實例總結

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延遲加載方式內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: