Sobes.tech
Middle

Wat is het verschil tussen de tags <script>, <script async> en <script defer>?

sobes.tech AI

Antwoord van AI

De standaard <script>-tag stopt de HTML-parsering, laadt het script en voert het uit, waarna de parsering doorgaat.

<script async> laadt het script asynchroon, terwijl de HTML-parsering doorgaat. Het script wordt onmiddellijk uitgevoerd na het laden. De volgorde van uitvoering is niet gegarandeerd.

<script defer> laadt het script asynchroon, terwijl de HTML-parsering doorgaat. Het script wordt alleen uitgevoerd na het voltooien van de HTML-parsering, maar vóór het DOMContentLoaded-evenement. De volgorde van uitvoering van defer-scripts wordt behouden volgens hun verschijning in de HTML.

Vergelijkingstabel:

Attribuut HTML-parsering tijdens het laden van het script Uitvoering van het script Behoud van de uitvoer volgorde
Geen Pauze Direct na het laden Ja
async Gaat door Direct na het laden (kan parsering onderbreken) Nee
defer Gaat door Na voltooiing van de HTML-parsering Ja

Voorbeeld:

<!-- Normaal script - blokkeert parsering -->
<script src="script1.js"></script>

<!-- Asynchroon script - blokkeert parsering niet, wordt direct na laden uitgevoerd -->
<script src="script2.js" async></script>

<!-- Uitgesteld script - blokkeert parsering niet, wordt uitgevoerd na HTML-parsering -->
<script src="script3.js" defer></script>
<script src="script4.js" defer></script> <!-- Wordt uitgevoerd na script3.js -->