96 votes

Peut-on utiliser à la fois les attributs async et defer sur une balise HTML ?

Je voudrais charger le code JavaScript suivant en utilisant les deux méthodes suivantes defer y async :

<script defer async src="/js/somescript.js"></script>

Depuis defer est pris en charge par Internet Explorer 5.5+, comme vous pouvez le voir à l'adresse suivante CanIUse.com J'aimerais pouvoir utiliser defer si l'asynchronisme n'est pas disponible. Je pense qu'il est préférable d'utiliser l'asynchronisme lorsqu'il est disponible, mais il ne sera pas pris en charge avant Internet Explorer 10.

Ma question est donc la suivante : le code ci-dessus est-il un code HTML valide ? Si ce n'est pas le cas, est-il possible de créer cette situation en utilisant JavaScript pour revenir à l'utilisation du code HTML ? defer sur un script lorsque async n'est pas disponible ?

1voto

user3765039 Points 81

En fait, il y a une idée fausse dans la plupart des commentaires ici. Les gens ne semblent pas savoir que DEFER charge également le code en parallèle, tout comme ASYNC. Mais il attend d'être exécuté après le chargement de DOM (mais avant l'exécution de DOMContentLoaded), alors que ASYNC l'exécute immédiatement après le chargement, avant le chargement de DOM. Puisque ASYNC et DEFER chargent le code en parallèle, il n'y a pas besoin d'utiliser les deux ensemble (mais pour gérer l'héritage, peut-être).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X