Document: thuộc tính readyState
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Thuộc tính Document.readyState mô tả trạng thái tải của document. Khi giá trị của thuộc tính này thay đổi, sự kiện readystatechange được kích hoạt trên đối tượng document.
Giá trị
readyState của một tài liệu có thể là một trong các giá trị sau:
loading-
documentvẫn đang tải (tức là HTML parser vẫn đang hoạt động). interactive-
Tài liệu đã được phân tích cú pháp nhưng các tài nguyên con như các tập lệnh deferred và module, hình ảnh, stylesheet và frame vẫn đang tải. Khi ở trạng thái này, và các tập lệnh defer và module đã được thực thi, sự kiện
DOMContentLoadedđược kích hoạt. complete-
Tài liệu và tất cả tài nguyên con đã tải xong. Trạng thái này cho biết sự kiện
loadsắp được kích hoạt.
Ví dụ
>Các trạng thái sẵn sàng khác nhau
switch (document.readyState) {
case "loading":
// Tài liệu đang tải.
break;
case "interactive": {
// Tài liệu đã tải xong và chúng ta có thể truy cập các phần tử DOM.
// Các tài nguyên con như tập lệnh, hình ảnh, stylesheet và frame vẫn đang tải.
const span = document.createElement("span");
span.textContent = "Phần tử <span>.";
document.body.appendChild(span);
break;
}
case "complete":
// Trang đã tải đầy đủ.
console.log(
`Quy tắc CSS đầu tiên là: ${document.styleSheets[0].cssRules[0].cssText}`,
);
break;
}
readystatechange như một phương án thay thế cho sự kiện DOMContentLoaded
// Phương án thay thế cho sự kiện DOMContentLoaded
document.onreadystatechange = () => {
if (document.readyState === "interactive") {
initApplication();
}
};
readystatechange như một phương án thay thế cho sự kiện load
// Phương án thay thế cho sự kiện load
document.onreadystatechange = () => {
if (document.readyState === "complete") {
initApplication();
}
};
readystatechange như trình lắng nghe sự kiện để chèn hoặc sửa đổi DOM trước DOMContentLoaded
document.addEventListener("readystatechange", (event) => {
if (event.target.readyState === "interactive") {
initLoader();
} else if (event.target.readyState === "complete") {
initApp();
}
});
Đặc tả kỹ thuật
| Thông số kỹ thuật |
|---|
| HTML> # current-document-readiness> |
Tương thích trình duyệt
Xem thêm
- Các sự kiện liên quan: