Magento 2 - Temps de chargement lourd (trop de fichiers js)

8

Je travaille actuellement sur Magento 2 et j'ai remarqué que les temps de chargement de toutes les pages sont extrêmement élevés.

Je fonctionne actuellement sur Xampp, le mode de production est activé, HTML / js / CSS sont fusionnés et minifiés, Varnish est désactivé et je ne l'utiliserai pas car mon hébergement web ne peut pas l'installer sur mon serveur car il interférera avec certains scripts. J'utilise un thème personnalisé dont le parent est le thème vierge de Magento 2. Après avoir modifié mes paramètres, j'ai redéployé des fichiers statiques et vidé le cache.

Ma principale préoccupation est que lorsque je regarde le panneau réseau, je vois qu'une énorme quantité de fichiers js est chargée à chaque fois. Par exemple, sur ma page de catégorie, 122 fichiers js sont chargés, ce que j'ai trouvé beaucoup, pour une taille totale de 955 ko.

Je l'ai testé sur mon serveur sans la fusion et la réduction mais comme je l'ai dit ci-dessus, je pense que le problème réside dans la quantité de fichier chargé car même s'il se charge plus rapidement, il est encore trop long et lors du processus de paiement, il est encore pire.

J'ai essayé l'option de regroupement, mais elle génère un fichier js de 8 Mo, ce qui est pire.

Ai-je raté quelque chose ou est-ce quelque peu normal que la quantité de fichiers js soit aussi élevée? Le vernis est-il obligatoire pour de bonnes performances et existe-t-il une alternative?

Je suis assez nouveau sur Magento 2, donc si vous avez besoin de plus d'informations, je serai heureux de vous les fournir.

Tonani
la source
C'est fréquent avec Magento 2, d'avoir 120 ou même plus de 150 scripts chargés. Vous pouvez toujours les fusionner et les réduire en un seul fichier. Mais vérifiez simplement que vous utilisez HTTP1 ou HTTP2 sur votre serveur. Si vous avez activé HTTP2, le fait d'avoir 120 ou même 150 scripts js chargés de manière asynchrone ne sera pas un problème en raison du fonctionnement de HTTP2. HTTP2 fait mieux avec plusieurs fichiers plus petits chargés à la fois, que d'avoir à charger un gros fichier js minifié combiné. Mais je ressens votre douleur, Magento 2 est un gros casse-tête pour travailler avec Magento 1. Mais je pense que Magento 2 est toujours lent!
Jonathan Marzullo

Réponses:

3

La quantité de JS est énorme, mais si elle résume à 8 Mo, il y a quelque chose qui ne va pas. Vous devez utiliser la configuration "Bundling" en mode production si vous ne voulez pas que> 100 fichiers soient chargés.

Avec le thème Luma par défaut, regroupement, fusion et réduction activés, le fichier JS fourni est de 1,9 Mo.

Le vernis est un autre sujet et n'aidera pas aux performances des fichiers statiques générés.

Fabian Schmengler
la source
C'est ce que j'ai fait et ça génère un fichier js 8mo. Y a-t-il une configuration spécifique à faire concernant le regroupement en plus de l'activer sur l'administrateur? J'ai ensuite vidé et nettoyé la cache.
Tonani
Vous devez activer le mode de production, redéployer les fichiers statiques et vider le cache, mais je suppose que vous l'avez déjà fait
Fabian Schmengler
Oui je l'ai fait. Il y a peut-être quelque chose qui ne va pas avec le thème vide.
Tonani
J'avais des problèmes similaires, mais j'ai l'impression que le regroupement avait un problème à un moment donné et qu'il est maintenant résolu. J'ai cependant utilisé ce seoptimer.com et cela montre toujours que mon site a un énorme JS d'environ 5 Mo lorsque DevTools affiche 1,5 Mo dans l'onglet réseau pour le JS sur la page du produit. Ce site est-il juste faux?
harri
1

Je suis également assez nouveau sur Magento 2, mais jusqu'à présent avec magento 1 et 2, nous avons dû activer la mise en cache pour que tout ait une vitesse quelconque. La quantité de js est énorme, donc la mise en cache est votre meilleur ami. Vous pouvez activer la mise en cache en exécutant php bin / magento cache: enable. Si vous avez mis en cache, vous devrez le vider après avoir effectué des modifications en utilisant php bin / magento cache: flush. La mise en cache intégrée de Magento 2 est disponible, même sans Vanish.

Zach L
la source
0

Il est vraiment surprenant que ce problème soit réel pour Magento 2 en 2020. Le regroupement ne regroupe pas 90% des fichiers (comme décrit ici )

Js merge, d'autre part, fusionne tout dans un super-lourd-méga-pack.

Cependant, bien qu'il ne puisse pas être résolu avec Magento par défaut, voici une extension payante qui améliore beaucoup le comportement susmentionné: optimisation de la vitesse de la page Google

Evgeni Obukhovsky
la source