Bonjour à tous,
En effet c'est un sujet qui remonte de longue date et il restait des améliorations a faire comme on peut lire ici par exemple http://forge.prestashop.com/browse/PSCSX-2598?focusedCommentId=91912&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-91912 ! ou http://forge.prestashop.com/browse/PSCSX-3181
CCC a été conçu à une époque ou mod_pagespeed, grunt n'existaient pas encore et ou charger un fichier pour tout le site était encore trop inconcevable pour améliorer les performances. Ce système pouvait bien sur être amélioré comme dit mais il a fait ce qu'on lui demandait pour remplir les recommandations Google Speed et Yahoo Slow dans un premier temps.
https://github.com/PrestaShop/PrestaShop/commit/e8901103e36d276cdd38ffbe870f72862b9bc766#diff-fbb038f4b8b267c6eddb7098259b8f54R265, plein de fonction assez pratiques tout en assurant une retro compatibilité avec les thèmes 1.4.
Toute une gestion du $noconflict a été mise en place pour gérer les chargements de jquery par des modules et il est aussi possible de demander quelle version de jquery est chargée locale ou distante et donc mettre en cache navigateur cette version externe hébergée chez Google etc. Malheureusement le cœur ne peut pas vraiment décider à la place du designer web si un module peut charger ou non jquery. Il ne devrait pas intervenir sur le fonctionnement du module. Un module qui charge jquery 1.2.3 ou la dernière version ne pouvait pas être empêché.
Plus tard le nombre de scripts et de inline scripts étaient bien trop importants dans les templates même du thème 1.5 et les modules en ajoutaient encore, il a fallu faire le ménage au niveau javascript, faire en sorte dans un premier temps que le javascript soit dans des fichiers javascripts et plus dans les templates, centraliser les variables globales en place des déclarations en plein template <script>foo = 'barar'</script> et essayer de limiter les slots naviguateur, versionner les caches pour renouveller les caches naviguateurs, permettre le removeJS mais revoir tout le système n’était pas possible pour la version 1.6. Donc c'est devenu un problème d'architecture car vieillissant mais encore très pratique par exemple https://github.com/PrestaShop/PrestaShop/pull/4248 .
La prochaine version 1.7 devrait résoudre cela et mettre en place de nouvelles méthodes plus modernes et adéquates.
Cordialement