Une des grosses problématiques des sites e-commerces (mais aussi des autres types de site) est de servir les pages (c-à -d. de répondre) le plus vite possible. Je vous propose de réfléchir ensemble à ce qu’il est envisageable de faire pour gagner du temps.
Il y a toujours des pages qui correspondent à un parcours bien déterminé. On pensera par exemple au tunnel d’achat, qui permet de terminer sa commande, d’Amazon ou Darty. Sur celui de ce dernier, il commence à partir de la page du panier (où l’on voit les produits souhaités). Il propose ensuite un mode de livraison (Collissimo, FedEx, etc.), puis un moyen de payement (CB, Paypal, chèque, etc.), puis un recap général, etc. Ces pages s’enchaînent naturellement. Sur chacune d’elle, l’utilisateur ne peut réaliser qu’un nombre limité d’actions. En général, cela se résume à choisir une des options puis aller à la page suivante. Il est aussi possible de revenir en arrière, même si c’est plus rare statistiquement parlant. En outre, les pages sont conçues de telle sorte que les utilisateurs choisissent massivement le premier choix proposé.
Dans ces conditions, il est vraiment très simple de savoir ce que l’utilisateur va faire ensuite : il va simplement choisir l’option mise en avant et cliquer sur le bouton « suivant »… Une fois que le serveur a répondu à l’utilisateur, rien ne l’empêche de continuer à travailler. Il peut, par exemple, commencer à générer la page suivante et la mettre en cache. Lorsque l’utilisateur la demandera, elle sera déjà prête et servie en quelques millisecondes. Impossible d’être plus rapide. Et au pire, même s’il ne demande pas cette page, il finira bien par la demander plus tard. Et même s’il ne la demande jamais, ça n’aura été qu’un peu de temps machine et de mémoire consommés pour rien. Par contre, si on vise bien, ça crée une super bonne expérience utilisateur.
Et c’est hyper simple à mettre en place, même sans framework/lib spécialisés… Alors pourquoi presqu’aucun de mes clients (je suis consultant freelance) ne met ça en place ?… A la place, ils cherchent des optimisations douteuses, pas efficaces, qui provoquent des bugs, etc.