«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как я могу определить готовность DOM, не полагаясь на фреймворки?

Как я могу определить готовность DOM, не полагаясь на фреймворки?

Опубликовано 9 ноября 2024 г.
Просматривать:634

How Can I Determine DOM Readiness Without Relying on Frameworks?

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» присутствует в состояниях «загрузка» и «интерактивная» готовность, но не в «завершенном» состоянии.

Заявление о выпуске Эта статья перепечатана по адресу: 1729390935. В случае каких-либо нарушений, пожалуйста, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3