javascript監控頁面加載情況


JavaScript與頁面加載相關的事件

先介紹JavaScript與頁面加載相關的幾個事件:

document.readystatechange

readystatechage事件會監控document.readyState。readyState有三個值:

  • loading:文檔正在加載
  • interactive:文檔已加載完成且已被解析,但子資源(如image,css,iframe等)仍在加載。
  • complete:文檔以及文檔里包含的子資源都已經完成加載,這是會觸發load事件。

示例:

switch (document.readyState) {
  case "loading":
    console.log("文檔正在加載...");
    break;
  case "interactive":
    console.log("文檔已加載完成,可以操作DOM元素")
    break;
  case "complete":
    // 頁面已完成加載,包括css,圖片等
    console.log("第一個css規則為: " + document.styleSheets[0].cssRules[0].cssText);
    break;
}

DOMContentLoaded

當html文檔加載完(但不包括頁面內嵌的圖片,css,iframe)且已經完成解析,這時就會除非DOMContentLoaded事件,這等同於readyState的interactive狀態。

document.addEventListener("DOMContentLoaded", function(event) {
    console.log("DOM文檔已加載完成");
  });

等同於使用onreadystatechange事件

document.onreadystatechange = function () {
  if (document.readyState === "interactive") {
    console.log("DOM文檔已加載完成");

  }
}

load

當文檔以及文檔包含的子資源完成加載后,就會觸發load事件,這是在readyState變為complete值后觸發。

window.addEventListener("load", function(event) {
    console.log("文檔以及它包含的資源都已加載完成");
  });

等同於

document.onreadystatechange = function () {
  if (document.readyState === "complete") {
    console.log("文檔以及它包含的資源都已加載完成");
  }
}

實現監控頁面的加載

了解完頁面相關的加載事件后,使用純Javascript來檢測頁面是否已經加載完成:

window.onload = function () { alert("It's loaded!") }

或:

window.addEventListener("load", function(event) {
    console.log("文檔以及它包含的資源都已加載完成");
  });

或:

document.onreadystatechange = function () {
  if (document.readyState === "complete") {
    console.log("文檔以及它包含的資源都已加載完成");
  }
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM