"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 determinar a prontidão do DOM sem frameworks?

Como determinar a prontidão do DOM sem frameworks?

Publicado em 23/12/2024
Navegar:719

How to Determine DOM Readiness without Frameworks?

Compreendendo a preparação do DOM sem estruturas

Ao desenvolver aplicativos da web, é crucial determinar quando o Document Object Model (DOM) está pronto para manipulação. Embora estruturas como jQuery ofereçam ouvintes readyState, este artigo explora abordagens alternativas para detectar a prontidão do DOM.

Acesso direto ao estado do DOM

Em vez de depender de estruturas, você pode diretamente verifique a propriedade readyState do documento:

if (document.readyState === 'complete') {
  // DOM is ready
}

No entanto, essa abordagem não é confiável em vários navegadores, pois alguns podem não fornecer um valor readyState preciso.

Verificação pronta do DOM baseada em eventos

Uma abordagem mais entre navegadores é escutar o evento DOMContentLoaded, que é acionado quando o DOM está pronto para manipulação:

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

Aproveitando a propriedade isReady não documentada do jQuery

Embora não documentado, o jQuery expõe uma propriedade isReady que indica internamente o estado pronto do DOM:

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

Lightweight DOM Ready Snippet

Inspirado no snippet de Dustin Diaz, você pode criar um mini listener pronto para DOM da seguinte maneira:

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

Essa verificação aproveita o fato de que o valor readyState contém "in" em estados de carregamento anteriores, tornando-o um indicador confiável da prontidão do DOM.

Declaração de lançamento Este artigo foi reimpresso em: 1729390816 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