"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo puedo determinar la preparación de DOM sin depender de marcos?

¿Cómo puedo determinar la preparación de DOM sin depender de marcos?

Publicado el 2024-11-09
Navegar:456

How Can I Determine DOM Readiness Without Relying on Frameworks?

Document.isReady: una solución nativa para la detección de DOM Ready

Es posible que no dependa de marcos como Prototype y jQuery para administrar eventos de window.onload ser siempre deseable. Este artículo explora métodos alternativos para determinar la preparación de DOM, particularmente mediante el uso de document.isReady.

Consulta de Document.isReady

Para navegadores modernos con API de eventos estables, el El evento DOMContentLoaded proporciona un método sólido para manejar eventos listos para DOM. Implementaciones como las siguientes ofrecen una solución simple y eficiente:

function fireOnReady() { /* ... */ }
if (document.readyState === 'complete') {
    fireOnReady();
} else {
    document.addEventListener("DOMContentLoaded", fireOnReady);
}

Propiedad $.isReady de jQuery

jQuery ofrece una propiedad no documentada, $.isReady, que refleja internamente el estado listo para DOM. La utilización de esta propiedad permite realizar comprobaciones concisas:

if($.isReady) {
    // DOM is ready
} else {
    // DOM is not yet ready
}

Es fundamental tener en cuenta que esta propiedad permanece sin documentar y no se puede garantizar su disponibilidad en futuras versiones de jQuery. Úselo con precaución y esté preparado para posibles cambios tras las actualizaciones.

Un fragmento personalizado listo para DOM

Para una mayor compatibilidad del navegador, se puede emplear un fragmento personalizado listo para DOM. Inspirado en el enfoque de Dustin Diaz, verifica document.readyState usando una expresión regular:

if( !/in/.test(document.readyState) ) {
    // document is ready
} else {
    // document is NOT ready
}

Este método se basa en el hecho de que la subcadena "en" está presente en los estados listos "cargando" e "interactivo", pero no en el estado "completo".

Declaración de liberación Este artículo se reimprime en: 1729390935 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3