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
defer
niasync
- 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">