Articles
Dans une Application à Page Unique, dois-je traiter côté Client ou côté Serveur ?
27 décembre 2015 • 2 min de lecture

L’un des arguments de vente de l’Application à Page Unique (SPA) était de décharger le travail traditionnellement effectué sur le serveur vers le client. Je pense que la SPA a tenu cette promesse.
Cependant, tout n’est pas rose. Il est facile de devenir trop zélé et de pousser trop de travail vers le client. Nous oublions souvent que nous ne pouvons pas contrôler l’environnement du client — le client peut être n’importe quoi, d’une machine vieille de dix ans au smartphone dernier cri avec accès à des vitesses internet variables. La seule chose sur laquelle nous pouvons compter est que l’utilisateur consulte notre site dans un navigateur.
Traitement
D’après mon expérience, le traitement intensif et les données nécessitant une cohérence entre le serveur et le client, comme les conversions de dates ou les données nécessitant des calculs précis, comme l’argent, sont des candidats de choix pour le rendu côté serveur.
Pagination
Une tâche courante effectuée côté client est la pagination. Avec de petits jeux de données, cela fonctionne très bien ; cependant, les petits jeux de données ne restent jamais petits. À mesure que les données croissent, l’application ralentit et finit par ne plus répondre. Malheureusement, vous ne savez pas que cela se produit car c’est côté client et pire encore, cela ne se produit pas sur tous les clients, ce qui rend le dépannage difficile.
Déplacer la pagination du client vers le serveur atténuera les problèmes de performance liés à la pagination côté client. Vous pensez peut-être : “mais maintenant je fais une tonne d’appels API. Faire autant d’appels API ne semble pas optimal.” C’est vrai, cela semble être le cas, mais vous serez surpris de la rapidité avec laquelle vos données reviennent du serveur. Et le meilleur ? Vous contrôlez le serveur et pouvez augmenter la capacité selon les besoins.
Au final, vous voulez offrir à l’utilisateur une expérience riche et réactive, et parfois cela signifie laisser le serveur faire le gros du travail.
Résumé
En résumé, quand c’est possible, nous voulons décharger le travail vers le client, mais ce faisant, nous pouvons rapidement surcharger le client. Garder les tâches ardues comme la pagination et le traitement intensif sur le serveur peut nous protéger contre la surcharge du client.
Auteur : Chuck Conway se spécialise dans l’ingénierie logicielle et l’IA générative. Connectez-vous avec lui sur les réseaux sociaux : X (@chuckconway) ou visitez-le sur YouTube.