Document.isReady: собственное решение для обнаружения готовности DOM.
Зависимость от таких платформ, как Prototype и jQuery, для управления событиями window.onload может не работать всегда быть желанной. В этой статье рассматриваются альтернативные методы определения готовности DOM, в частности, с помощью document.isReady.
Запрос Document.isReady
Для современных браузеров со стабильными API событий Событие DOMContentLoaded предоставляет надежный метод обработки событий готовности DOM. Подобные реализации предлагают простое и эффективное решение:
function fireOnReady() { /* ... */ }
if (document.readyState === 'complete') {
fireOnReady();
} else {
document.addEventListener("DOMContentLoaded", fireOnReady);
}
Свойство $.isReady в jQuery
jQuery предлагает недокументированное свойство $.isReady, которое внутренне отражает состояние готовности DOM. Использование этого свойства позволяет проводить краткие проверки:
if($.isReady) {
// DOM is ready
} else {
// DOM is not yet ready
}
Очень важно отметить, что это свойство остается недокументированным, и его доступность в будущих версиях jQuery не может быть гарантирована. Используйте его с осторожностью и будьте готовы к возможным изменениям при обновлении.
Пользовательский фрагмент кода DOM
Для более широкой совместимости с браузером можно использовать собственный фрагмент кода DOM. Вдохновленный подходом Дастина Диаса, он проверяет document.readyState с помощью регулярного выражения:
if( !/in/.test(document.readyState) ) {
// document is ready
} else {
// document is NOT ready
}
Этот метод основан на том факте, что подстрока «in» присутствует в состояниях «загрузка» и «интерактивная» готовность, но не в «завершенном» состоянии.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3