Sobes.tech
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