JavaScript DOM pronto

  1. Use a função jQuery ready() para chamar funções quando o DOM estiver pronto
  2. Abordagem Vanilla JavaScript para chamar funções quando o DOM está pronto
JavaScript DOM pronto

O carregamento de um site começa com o download do documento HTML. Depois que o documento HTML é baixado, o HTML é analisado e os recursos necessários são baixados. Depois que o HTML é analisado, o DOM e o CSS são renderizados em paralelo. Depois disso, o navegador cuida das funções onload do JavaScript. Este é o período de tempo que queremos chamar de funções porque HTML, CSS, DOM são renderizados corretamente. Este tutorial ensina como chamar uma função quando o DOM estiver pronto.

Use a função jQuery ready() para chamar funções quando o DOM estiver pronto

A função ready() em jQuery executa o código quando o DOM está pronto. Ele espera que todos os elementos sejam totalmente carregados e, em seguida, tenta acessá-los e manipulá-los. Podemos selecionar o elemento documento, um elemento vazio para chamar uma função, ou mesmo chamar diretamente uma função.

$(document).ready(function() {
  // callback function / handler
});

É um método totalmente compatível com vários navegadores e pode ser chamado de qualquer lugar no código HTML.

Abordagem Vanilla JavaScript para chamar funções quando o DOM está pronto

Podemos criar o equivalente em JavaScript da função ready() do jQuery usando o evento DOMContentLoaded. Podemos adicionar um ouvinte de evento para DOMContentLoaded e chamar nossa função desejada com esse ouvinte de evento. Mas há um problema: o retorno de chamada não será acionado se o evento já tiver ocorrido. Portanto, cuidamos dessa condição verificando o estado de prontidão do objeto de documento.

const callback = function() {};

if (document.readyState === 'complete' ||
    document.readyState === 'interactive') {
  setTimeout(callback, 1);
} else {
  document.addEventListener('DOMContentLoaded', callback);
}

Existem alguns truques além desses métodos que nos ajudam a resolver esse problema, mas podem não ser ideais em todos os casos.

  • Use o atributo onload da janela para chamar a função JavaScript.
  • Use o atributo onload do corpo para chamar a função JavaScript. Esse método pode ser terrivelmente lento, pois espera que cada elemento seja carregado.
  • Podemos chamar a função a ser executada a partir do final do corpo. No final do corpo, o DOM está apropriadamente renderizado e pronto. Portanto, não há problemas com chamadas de função relacionadas a qualquer elemento. Ele funciona muito mais rápido do que o manipulador onload do corpo porque não espera que as imagens sejam carregadas completamente.
Está gostando dos nossos tutoriais? Inscreva-se no DelftStack no YouTube para nos apoiar na criação de mais vídeos tutoriais de alta qualidade. Inscrever-se
Harshit Jindal avatar Harshit Jindal avatar

Harshit Jindal has done his Bachelors in Computer Science Engineering(2021) from DTU. He has always been a problem solver and now turned that into his profession. Currently working at M365 Cloud Security team(Torus) on Cloud Security Services and Datacenter Buildout Automation.

LinkedIn

Artigo relacionado - JavaScript DOM