3
respostas

Dúvida sobre o evento DOMContentLoaded

Eu não entendi pq precisa desse evento para contabilizar, por que não chamar a função "imprimirQuantidadeJogosAlugados" somente?

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

O Javascript está sendo chamado ao final do "body" do HTML, então o HTML já teria sido todo carregado e o Javascript já poderia interagir com o DOM e contabilizar que o terceiro jogo já está alugado, né? Mas verifiquei usando só a função "imprimirQuantidadeJogosAlugados" sem o evento e não contabiliza, o resultado dá 0, mesmo o Javascript sendo chamado ao final do "body", pq isso acontece?

3 respostas

Olá, Luidi. Tudo bem?

A razão para usar o evento DOMContentLoaded é garantir que o código JavaScript só seja executado após todo o HTML ter sido completamente carregado e o DOM estar totalmente construído. Mesmo que o script esteja no final do body, pode haver casos em que o DOM ainda não esteja totalmente disponível, especialmente se houver scripts externos ou outros elementos que possam atrasar o carregamento.

Quando você tenta acessar elementos do DOM antes de estarem completamente carregados, o JavaScript pode não encontrar esses elementos, resultando em um valor incorreto, como 0 no seu caso. O evento DOMContentLoaded assegura que o código só será executado quando o DOM estiver pronto, evitando esses problemas.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.Bons Estudos!

Pensei que colocando o scripit no final do body, isso iria garantir que o HTML estivesse carregado e o DOM construído. Tem como saber o que está atrasando esse carregamento? Se são scripts externos ou outros elementos e quais são esses nesse projeto do "carrinho-compras" desse curso?

Olá, Luidi.

Mesmo com o script no final do body, o DOM pode não estar disponível por completo devido a scripts externos, imagens ou outros recursos que atrasam o carregamento.

Use o DevTools (F12) na aba Network para verificar se há algo lento carregando e a aba Performance para identificar bloqueios. Assim, você pode descobrir o que está causando o atraso no seu projeto.