Compression des `<script>` avec attributs `async` et `defer`
Référence : https://developer.mozilla.org/fr/docs/Web/HTML/Element/script
Un ticket pour réfléchir aux conséquences des attributs async et defer sur la concaténation des <script>.
Mes conclusions en lisant la doc, mais je suis pas sûr à 100% :
À priori il ne faudrait pas les concaténer avec les autres scripts, sinon on perd le chargement asynchrone.
Avec defer, les scripts sont exécutés dans l'ordre dans lequel ils apparaissent dans le document : ils pourrait peut-être être concaténés ensembles séparément ?
En résumé :
- concaténer ensemble les script sans
deferniasync - concaténer ensemble les scripts avec
defer - Ne pas concaténer les script avec
async
Autrement dit, si on part de ça :
<!-- les normaux -->
<script src="normal1.js">
<script src="normal2.js">
<!-- les defer -->
<script defer src="defer1.js">
<script defer src="defer2.js">
<!-- les async -->
<script async src="async1.js">
<script async src="async2.js">
Après compression, on aurait :
<!-- concaténation des normaux -->
<script src="normal1_normal2.js">
<!-- concaténation des defer -->
<script defer src="defer1_defer2.js">
<!-- les async -->
<script async src="async.js">
<script async src="async.js">