1. 程式人生 > >js實現延遲載入的幾種方法

js實現延遲載入的幾種方法

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

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

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

<script type="text/javascript" >
  function A(){
    $.post("/lord/login",{name:username,pwd:password},function(){
      alert("Hello");
    });
  }
  $(function (){
    setTimeout('A()', 1000); //延遲1秒
  })
</script>
  1. 讓js最後載入
    例如引入外部js指令碼檔案時,如果放入html的head中,則頁面載入前該js指令碼就會被載入入頁面,而放入body中,則會按照頁面從上倒下的載入順序來執行JavaScript的程式碼~~~ 所以我們可以把js外部引入的檔案放到頁面底部,來讓js最後引入,從而加快頁面載入速度

  2. 上述方法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程式碼,應放在一個外部檔案,然後再引進來。

via:https://www.jb51.net/article/112032.htm