Qual é a diferença entre DOMContentLoaded
e load
events?
javascript
browser
Viktor
fonte
fonte
Respostas:
No Mozilla Developer Center :
fonte
O
DOMContentLoaded
evento será acionado assim que a hierarquia do DOM for totalmente construída, oload
evento será executado quando todas as imagens e subquadros tiverem terminado o carregamento.DOMContentLoaded
funcionará nos navegadores mais modernos,mas não no IE,incluindo o IE9 e superior. Existem algumas soluções alternativas para imitar esse evento em versões mais antigas do IE, como as usadas na biblioteca jQuery, elas anexam o evento específico do IEonreadystatechange
.fonte
Veja a diferença você mesmo:
DEMO
Do Microsoft IE
Da Rede de Desenvolvedores Mozilla
fonte
DOMContentLoaded
garantia de que todos os scripts (incluindo Adiar / assíncrona) foram carregados? Nada é dito aqui sobre scripts: developer.mozilla.org/en-US/docs/Web/Events/DOMContentLoadedDOMContentLoaded
==window.onDomReady()
Load
==window.onLoad()
Consulte: http://learn.jquery.com/using-jquery-core/document-ready/
fonte
domContentLoaded : marca o ponto em que o DOM está pronto e não há folhas de estilo que estejam bloqueando a execução do JavaScript - o que significa que agora podemos (potencialmente) construir a árvore de renderização. Muitas estruturas JavaScript aguardam esse evento antes de começarem a executar sua própria lógica. Por esse motivo, o navegador captura os registros de data e hora EventStart e EventEnd para permitir rastrear quanto tempo essa execução levou.
loadEvent : como uma etapa final em cada carregamento de página, o navegador dispara um evento "onload" que pode disparar lógica de aplicativo adicional.
fonte
fonte
Aqui está um código que funciona para nós. Descobrimos que o MSIE é um problema
DomContentLoaded
, parece que há algum atraso quando nenhum recurso adicional é armazenado em cache (até 300ms com base no log do console) e é acionado muito rápido quando eles são armazenados em cache. Por isso, recorremos a um substituto para o MISE. Você também deseja acionar adoStuff()
função, seja acionadaDomContentLoaded
antes ou depois dos arquivos JS externos.fonte