Dus defer-modus voorkomt dat de pagina wordt geblokkeerd en scripts met defer worden altijd uitgevoerd wanneer het DOM gereed is, maar vóór DOMContentLoaded
-gebeurtenis.
De gebeurtenis DOMContentLoaded vuurt wanneer het oorspronkelijke HTML-document volledig is geladen en geparseerd, zonder te wachten tot stylesheets, afbeeldingen en subframes klaar zijn met laden.
Uitgestelde scripts behouden hun relatieve volgorde, net als gewone scripts. Dus als we eerst een lang script hebben en dan een kleiner, dan wacht het laatste.
Maar het defer
-attribuut wordt genegeerd als de <script>
-tag geen src
heeft.
Async
Het async-attribuut betekent dat het helpt script in ‘onafhankelijke’ modus te laden.
De browser laadt pagina’s zonder te wachten tot async-scripts zijn geladen. DOMContentLoaded en async scripts wachten niet op elkaar (“load-first” volgorde).
Andere scripts wachten niet op async
scripts, en async
scripts wachten niet op hen. Async mode (net als defer mode) blokkeert de pagina niet.
Async scripts zijn geweldig wanneer we een onafhankelijk script van derden integreren in de pagina: tellers, advertenties, analytische tools enzovoort, omdat ze niet afhankelijk zijn van onze scripts, en onze scripts zouden niet op hen moeten wachten.
Dynamisch
We kunnen een script ook dynamisch toevoegen met behulp van JavaScript: