"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como posso determinar a prontidão do DOM sem depender de estruturas?

Como posso determinar a prontidão do DOM sem depender de estruturas?

Publicado em 2024-11-09
Navegar:528

How Can I Determine DOM Readiness Without Relying on Frameworks?

Document.isReady: uma solução nativa para detecção pronta para DOM

A dependência de estruturas como Prototype e jQuery para gerenciar eventos window.onload pode não sempre será desejável. Este artigo explora métodos alternativos para determinar a prontidão do DOM, especialmente por meio do uso de document.isReady.

Consultando Document.isReady

Para navegadores modernos com APIs de eventos estáveis, o O evento DOMContentLoaded fornece um método robusto para lidar com eventos prontos para DOM. Implementações como as seguintes oferecem uma solução simples e eficiente:

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

a propriedade $.isReady do jQuery

jQuery oferece uma propriedade não documentada, $.isReady, que reflete o estado pronto do DOM internamente. A utilização desta propriedade permite verificações concisas:

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

É crucial observar que esta propriedade permanece não documentada e sua disponibilidade em versões futuras do jQuery não pode ser garantida. Use-o com cuidado e esteja preparado para possíveis alterações após atualizações.

Um snippet pronto para DOM personalizado

Para maior compatibilidade do navegador, um snippet pronto para DOM personalizado pode ser empregado. Inspirado na abordagem de Dustin Diaz, ele verifica document.readyState usando uma expressão regular:

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

Este método depende do fato de que a substring "in" está presente nos estados "carregamento" e "interativo" pronto, mas não no estado "completo".

Declaração de lançamento Este artigo foi reimpresso em: 1729390935 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3