Jaka jest różnica między DOMContentLoaded
i load
zdarzenia?
javascript
browser
Viktor
źródło
źródło
Odpowiedzi:
Z Centrum deweloperów Mozilla :
źródło
DOMContentLoaded
Wydarzenie będzie ogień tak szybko, jak hierarchia DOM została wykończona,load
wydarzenie zrobi to, gdy wszystkie obrazy i sub-ramki zakończeniu ładowania.DOMContentLoaded
będzie działać na większości nowoczesnych przeglądarek,ale nie na IE, wtym IE9 i nowszych. Istnieją pewne obejścia, które mogą naśladować to zdarzenie w starszych wersjach IE, takie jak używane w bibliotece jQuery, dołączają określoneonreadystatechange
wydarzenie IE .źródło
Przekonaj się sam:
PRÓBNY
Z Microsoft IE
Z sieci deweloperów Mozilla
źródło
DOMContentLoaded
gwarantuje, że wszystkie skrypty (łącznie z odroczeniem / asynchronizacją) zostały załadowane? Nic nie mówi się tutaj o skryptach: developer.mozilla.org/en-US/docs/Web/Events/DOMContentLoadedDOMContentLoaded
==window.onDomReady()
Load
==window.onLoad()
Zobacz: http://learn.jquery.com/using-jquery-core/document-ready/
źródło
domContentLoaded : oznacza punkt, w którym oba DOM jest gotowy i nie ma arkuszy stylów blokujących wykonywanie JavaScript - co oznacza, że możemy (potencjalnie) zbudować drzewo renderowania. Wiele frameworków JavaScript czeka na to zdarzenie, zanim zacznie wykonywać własną logikę. Z tego powodu przeglądarka przechwytuje znaczniki czasu EventStart i EventEnd, aby umożliwić nam śledzenie czasu wykonania.
loadEvent : jako ostatni krok przy każdym ładowaniu strony przeglądarka uruchamia zdarzenie „onload”, które może wywołać dodatkową logikę aplikacji.
źródło
źródło
Oto kod, który działa dla nas. Okazało się, że MSIE jest trafione i chybione
DomContentLoaded
, wydaje się, że występuje pewne opóźnienie, gdy żadne dodatkowe zasoby nie są buforowane (do 300 ms w oparciu o rejestrowanie w konsoli), i uruchamia się zbyt szybko, gdy są buforowane. Więc uciekliśmy się do awaryjnego rozwiązania MISE. Chcesz również uruchomićdoStuff()
funkcję niezależnie od tego, czyDomContentLoaded
wyzwala przed, czy po zewnętrznych plikach JS.źródło