Middle
Quelle est la différence entre les balises <script>, <script async> et <script defer>?
sobes.tech IA
Réponse de l'IA
<script>: L’analyse du HTML s’arrête, le script est chargé et exécuté, puis l’analyse du HTML reprend. Bloque le rendu.<script async>: Le script est chargé de manière asynchrone, en parallèle avec l’analyse du HTML. Dès que le script est chargé, l’analyse du HTML est interrompue pour exécuter le script, puis reprend. L’ordre d’exécution des scripts asynchrones n’est pas garanti.<script defer>: Le script est chargé de manière asynchrone, en parallèle avec l’analyse du HTML. L’exécution est différée jusqu’à ce que l’analyse du HTML et la construction du DOM soient terminées. L’ordre d’exécution des scripts différés est maintenu selon leur ordre dans le document.
Voici un tableau résumant les différences :
| Attribut | Chargement | Exécution | Blocage de l’analyse HTML | Ordre des scripts |
|---|---|---|---|---|
| absent | Synchrone | Immédiatement après le chargement | Oui | Garantit |
async |
Asynchrone | Immédiatement après le chargement (si le HTML est encore en cours d’analyse) | Oui (pendant l’exécution) | Non garanti |
defer |
Asynchrone | Après le chargement complet du HTML et la construction du DOM | Non (sauf au moment de l’exécution, mais après le HTML) | Garantit |