天天看點

js延遲加載的方式有哪些?

js的延遲加載有助與提高頁面的加載速度,以下是延遲加載的幾種方法:

  • 1.使用setTimeout延遲方法的加載時間

    延遲加載js代碼,給網頁加載留出更多時間

<script type="text/javascript" >
    function A(){
        $.post("/lord/login",{name:username,pwd:password},function(){
            alert("Hello");
        });
    }
    $(function (){
        setTimeout('A()', ); //延遲1秒
    })
</script>
           
  • 2.讓js最後加載

例如引入外部js腳本檔案時,如果放入html的head中,則頁面加載前該js腳本就會被加載入頁面,而放入body中,則會按照頁面從上倒下的加載順序來運作JavaScript的代碼~~~ 是以我們可以把js外部引入的檔案放到頁面底部,來讓js最後引入,進而加快頁面加載速度

  • 3.上述方法2也會偶爾讓你收到Google頁面速度測試工具的“延遲加載javascript”警告。是以這裡的解決方案将是來自Google幫助頁面的推薦方案。
//這些代碼應被放置在</body>标簽前(接近HTML檔案底部)
<script type="text/javascript">
    function downloadJSAtOnload() {
        var element = document.createElement("script");
        element.src = "defer.js";
        document.body.appendChild(element);
    }
    if (window.addEventListener)
        window.addEventListener("load", downloadJSAtOnload, false);
    else if (window.attachEvent)
        window.attachEvent("onload", downloadJSAtOnload);
    else window.onload = downloadJSAtOnload;
</script>
           

這段代碼意思是等到整個文檔加載完後,再加載外部檔案“defer.js”。

使用此段代碼的步驟:

1).複制上面代碼

2).粘貼代碼到HTML的标簽前 (靠近HTML檔案底部)

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

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

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