JS властивість Document.readyState
Загальний опис
Властивість readyState об'єкта Document в JavaScript надає інформацію про поточний стан завантаження документа. Ця властивість допомагає розробникам контролювати процес завантаження сторінки і виконувати відповідні дії в залежності від її стану. Основна суть readyState полягає в тому, щоб забезпечити можливість програмно перевіряти, чи завершено завантаження документа, чи все ще триває процес, а також чи виникли певні помилки або проблеми під час завантаження.
Основне застосування readyState полягає у керуванні виконанням скриптів, які пов'язані зі завантаженням документа, виконанням асинхронних запитів або взаємодією з DOM-елементами. Завдяки цій властивості розробники можуть запускати функції або виконувати інші дії тільки після того, як документ буде повністю завантажений.
Простий приклад
if (document.readyState === 'loading') {
console.log('Документ ще завантажується...');
} else {
console.log('Документ завантажено.');
}
У цьому прикладі виводиться повідомлення, яке вказує на те, чи документ ще завантажується чи вже завантажено. Це дозволяє виконувати певні дії, тільки коли документ готовий для маніпуляцій.
Використання разом з подіями
document.addEventListener('readystatechange', function() {
if (document.readyState === 'complete') {
console.log('Документ завантажено і готовий для використання.');
}
});
У цьому прикладі додається обробник події, який викликається, коли змінюється readyState. Коли readyState стає рівним 'complete', виводиться повідомлення про те, що документ повністю завантажено.
- Порада
-
автор: BondreadyStateможе приймати два основні значення:loading, яке означає, що документ все ще завантажується, та"complete", яке вказує на те, що документ було повністю завантажено. Використання цієї властивості дозволяє реалізувати логіку, яка залежить від стану завантаження сторінки. - Порада
-
Для виконання скриптів після повного завантаження документа, рекомендується використовувати перевірку
автор: BondreadyStateу комбінації з подієюDOMContentLoaded. Це забезпечує, що ваш код виконається відразу після завантаження HTML, але перед завантаженням зовнішніх ресурсів, таких як зображення. - Порада
-
У сценаріях, коли потрібно забезпечити взаємодію з елементами, які можуть бути додані до документа динамічно, важливо регулярно перевіряти
автор: BondreadyState. Це допоможе уникнути ситуацій, коли скрипт намагається отримати доступ до елементів, які ще не були повністю завантажені або ініціалізовані.
Синтаксис
Document.readyState
Переглядачі
| Переглядач | |||||
|---|---|---|---|---|---|
| 1 | 3.6 | 1 | 11 | 12 |
| Переглядач | ||||
|---|---|---|---|---|
| 4.4 | 18 | 4 | 1 |
| Переглядач | ||
|---|---|---|
| - | - |
Приклади
+ запропонувати свій приклад у пісочниці
У цьому простому прикладі ми використовуємо властивість Document.readyState для перевірки, чи повністю завантажений документ. Це особливо корисно, коли потрібно виконати JavaScript-код відразу після завантаження сторінки, але перед завантаженням зображень або інших зовнішніх ресурсів.
document.addEventListener("DOMContentLoaded", function() {
if (document.readyState === "complete") {
console.log("Документ повністю завантажений і готовий до використання.");
}
});
У цьому складнішому прикладі ми використовуємо Document.readyState для визначення, коли документ перебуває у стані interactive, що означає, що DOM повністю завантажений і доступний для маніпуляцій, навіть якщо зовнішні ресурси, такі як зображення, можуть ще завантажуватися.
function addDynamicContent() {
var newElement = document.createElement("p");
newElement.textContent = "Це динамічно доданий контент.";
document.body.appendChild(newElement);
}
if (document.readyState === "interactive" || document.readyState === "complete") {
addDynamicContent();
} else {
document.addEventListener("DOMContentLoaded", addDynamicContent);
}
У цьому прикладі кнопка "Перевірити стан документа" дозволяє користувачу в будь-який момент отримати поточний стан завантаження документа. При натисканні на кнопку, обробник подій зчитує властивість Document.readyState і виводить її значення в параграф #stateResult.
Коментарі
Коментарів ще немає — будьте першим!