Dans la plupart des langages, les chaînes de caractères ne sont pas modifiables. Ajouter un caractère à une chaîne existante c'est créer un nouvel objet avec la chaîne résultante. Parfois comme dans ruby ce n'est pas visible pour l'utilisateur mais c'est bien ce qui est fait en interne. pour éviter que de multiples concaténations ne posent des problèmes de performance, on a souvent à disposition un objet spécifique StringBuffer dédié à cet usage. Ce n'est malheureusement pas le cas en javascript et on voit passer de nombreuses recommandations de micro-optimisation pour compenser.
"combining can sometimes make loads slower, due to deferral of JS execution (have to download entire combined JS file before any of the JS can be executed).
A second reason is that combining can make the resources take longer to download, due to the way that TCP slow start works"
Après avoir parlé hier des stratégies d'optimisation, parlons rapidement de ce qu'il y a à gagner. Je me concentre sur la stratégie la plus fréquente : tenter de regrouper nos ressources dans des gros fichiers globaux.