Jump to content

Filtrer les scripts js et le css sur la home


Recommended Posts

Bonjour,

Après une petite analyse d'un site nous nous sommes rendu compte qu'énormément de script js et fichier css étaient chargés sur la home alors qu'ils n'étaient pas nécessaire (module propre aux pages produits etc ... au final pas loins d'une 20aine de fichier)

Le but est donc de ne pas charger tout ça sur la home uniquement, nous avons analysés plusieurs pistes mais au final je suis pas satisfaite complètement :

- Désactiver le cache JS & CSS de prestashop et donc via les tpl du thème filtrer via stylesheet.tpl et javascript.tpl les scripts posés dans le dom, problème on doit désactivé le cache donc on perd en performance

- Vient la piste du PHP, 1ère solution agir dans chaque module et avant l'implantation du script vérifié si on est sur la home, problème ça fait modifier énormément de module et au final en cas de mise à jour future ça peut poser problème

Dans l'idéal j'aimerais trouver un endroit dans le php ou tous les scripts JS et feuille de style sont enqueue boucler dessus et faire le ménage avant qu'ils soient minifier par le cache, j'ai fais pas mal de hook vérifié dans google, chatgpt mais toutes les pistes n'ont rien donné où que je sois les variables sont soit inexistantes soit vides, j'ai testé en modifiant les priorité sur les hooks ou je me greffais mais pas mieux

Quelqu'un aurait il une piste un hook quelque chose ?

Edit : j'avais pensé à une piste mais je n'ai pas eu le temps de la tester peut être qqun pourra me confirmer si c'est une bonne idée, utiliser la fonctionnalité qui permet de désactivé un module pour certains groupe d'utilisateur que l'on trouve dans Paramètre boutique > Clients > Groupes > modifier un groupe

merci beaucoup !

Edited by Nikita1000 (see edit history)
Link to comment
Share on other sites

Il y a 2 heures, Nikita1000 a dit :

- Vient la piste du PHP, 1ère solution agir dans chaque module et avant l'implantation du script vérifié si on est sur la home, problème ça fait modifier énormément de module et au final en cas de mise à jour future ça peut poser problème

Il faudrait surtout que les développeurs de modules développent convenablement leurs modules.

Évidement que l'on ne doit charger les éléments que lorsqu'ils doivent l'être.

C'est un problème que je retrouve souvent et cela m'énerve énormément, car on retrouve des modules super vendeurs, mais développé comme les pieds et alors qu'on se bat pour faire des modules propres et que cette partie passe inaperçue.

Donc, oui, c'est aux développeurs de faire leur job, pas à vous de corriger leur incompétence.

Link to comment
Share on other sites

Bonjour,

je suis totalement d'accord avec ce point mais il y a aussi des modules qui prennent le partie de charger par défaut le js + css parce que le module peut être mis sur la home il n'y pas que le cas de modules qui chargent comme des bourrins le js sans réfléchir

Quoiqu'il en soit en expliquant le problème pour faire mon message initial ça m'a permis de réfléchir différement et j'ai finalement je pense trouvé une solution je suis en train de tester mais en overridant FrontController > getJavascript & getStylesheets je me trouve pile là ou je veux être et peut à priori faire du ménage en testant si je suis sur la home et cela s'applique que le cache du site soit activé ou non

Merci

Link to comment
Share on other sites

Il faudrait changer le système de cache CCC de Presta, pour avoir une concaténation par type de vue (home, catalogue, produit, marque / fournisseur, panier / commande. Mais cela implique de pouvoir taguer les fichiers CSS et JS en fonction de la vue, donc de changer des méthodes du core. Quelqu'un pour un pull request ?

Edited by Prestashop Addict (see edit history)
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...