• Home
  • Nous contacter

Le blog d'Adfab

Le blog d'Adfab

Le blog d'Adfab

Le blog d'Adfab
e-Commerce

Magento, layout, action et bloc en cache

La problématique

Comme vous le savez sans doute, Magento s’appuie sur une mise en cache des ses pages par bloc afin de proposer des temps de réponse raisonnables. Un bloc en cache permet de rendre son contenu sans le régénérer, donc sans rejouer les requêtes sql, donc beaucoup plus rapidement. Dans certains cas hélas, certaines requêtes sont jouées lorsque les fichiers de layout sont interprétés (même en cache), notamment à cause du node « action ». En effet on peut observer que lorsque Magento charge les blocs en interprétant les fichiers de layout, il y appelle aussi les méthodes présentes dans le node « action », et ce avant de le rendre. Prenons un exemple : dans le cas du bloc header, celui-ci affiche les liens « Mon compte », « connexion », etc .. magento header link Différents modules viennent chercher ce bloc pour y rajouter leur propre lien (via une action), par exemple :

<reference name="top.links">
<action method="addLink" translate="label title" module="customer"><label>Mon compte</label><url>helper:customer/getLoginUrl</url><title>Mon compte</title><prepare/><urlParams/><position>90</position></action>
</reference>

cet ajout de lien fait l’objet d’une requête sql dans la table core_url_rewrite, ceci même si le bloc est en cache, et à chaque fois qu’une page est chargée !

Une solution

Pour un simple affichage de lien dans le header, nous perdons l’avantage de la mise en cache du bloc. Une solution est de supprimer ces liens dans les fichiers de layout, et de les placer directement dans le phtml. Les requêtes seront donc générées dans le bloc, et non lors de son instanciation. Par ce simple petit geste, vous évitez des appels en BDD inutiles et optimisez les temps de réponse de toutes vos pages (il s’agit du header du site dans cet exemple). De nombreux autres blocs utilisent ce type de méthode limitant la portée de la mise en cache sans raison réellement valable (un lien vers l’url du compte utilisateur n’est pas de nature à changer tous les jours…). Alors n’hésitez pas à faire la chasse à ces petites optimisations qui amélioreront les performances de votre site e-commerce !

26/06/2015 13 MIN READ TAGS: cache, Magento BY: Arnaud HOURS 0 COMMENT
SHARE
LIRE LA SUITE

Arnaud HOURS

Flext au Hackathon

Créer un package pour Composer avec Github et Packagist – Partie 2

VOUS POURRIEZ AIMER

e-Commerce Outils Magento plugin for NetBeans IDE (part. 1)

e-Commerce Module Prestashop | épisode 2

e-Commerce Nouvelle règlementation e-commerce

e-Commerce Importer des données e-commerce avec l’ETL Talend Open Studio

e-Commerce Magento – actualiser les onglets en Ajax dans une page d’édition d’un item

CMS e-Commerce Prestashop 1.7, pourquoi pas…

A propos d’Adfab

Nous sommes un studio de production digitales et d’innovation digitales au service des agences et des annonceurs
Nous recherchons le scintillement dans les regards et le plaisir de réalisations sur-performantes
Nous sommes techno-agnostiques
Nous sommes Adfab

Le blog d'Adfab
Copyright © 2018 Adfab Connect