Il y a plusieurs façons de construire un site Web, peu importe le langage de programmation choisi.
Je vous explique ici différentes options qui s'offrent à vous par rapport à l'interaction entre le code côté client et le code côté serveur.
Traditionnellement, un site Web était bâti pour répondre à ce processus :
Pas de chichis, pas de flaflas. Tout est simple, mais...
Les sites qui utilisent ce processus de façon pure sont plutôt rares de nos jours. La principale raison, c'est que cette façon de faire est gourmande en ressources : tout doit être rechargé chez le client à chaque fois qu'une action est posée.
La gestion de la mémoire cache par les navigateurs permet de limiter le rechargement superflu de ressources mais il reste que le rechargement de tout le code HTML est un processus inutilement long.
Pour diminuer les rechargements inutiles, et ainsi améliorer l'expérience utilisateur, les développeurs de sites Web ont commencé à effectuer des appels AJAX.
Dans ce processus, les pages Web sont encore rendues côté serveur comme c'était le cas avec la façon traditionnelle.
Cependant, grâce aux appels AJAX, le client peut réagir à une action, par exemple un clic sur un bouton pour enregistrer une information, sans avoir à recharger la page en entier.
L'appel AJAX exécute du code côté serveur puis retourne une réponse au client. Le client peut ensuite mettre à jour une partie de la page Web en effectuant des manipulations du DOM.
Cette approche a cependant un défaut de taille : le code devient rapidement difficile à maintenir puisqu'il faut intercepter des comportement natifs (par exemple la soumission d'un formulaire) puis écrire à la main le code JavaScript qui effectue le traitement désiré. En plus, il ne faut rien oublier lors de l'ajustement manuel du code HTML de la page Web.
Les bibliothèques spécialisées dans le rendu d'interfaces utilisateur, par exemple React ou Vue.js, permettent de faciliter le travail d'ajustement de l'interface.
On dira que ces bibliothèques effectuent un rendu côté client (Client-Side Rendering ou CSR), c'est-à-dire que c'est le client qui se charge de générer le contenu de la page, généralement en JavaScript.
Un site Web qui les utilise de façon pure sera une application Web monopage (Single-Page Application ou SPA), c'est-à-dire qu'il y a une seule page Web rendue côté serveur et que tout le reste (options de menus, liens internes, etc.) ne sert qu'à ajuster le contenu de cette page.
Le code côté serveur est alors relayé au rôle d'interface de programmation d'application (Application Programming Interface ou API).
Ces bibliothèques introduisent notamment des balises qui ressemblent à du HTML mais qui sont conçues pour effectuer un traitement spécifiquement adapté à la situation. Beaucoup de code JavaScript est exécuté automatiquement pour générer le code HTML qui répond au besoin.
Lorsqu'on bâti un site Web avec une de ces bibliothèques, il faut travailler avec des appels AJAX pour effectuer le traitement côté serveur tout en laissant la bibliothèque maîtresse du rendu côté client.
Un des avantages de ces bibliothèques, en plus d'éviter les rechargements longs et inutiles, c'est qu'elles « savent » quand il faut rafraîchir une partie de l'écran. Il y a moins de risques d'erreurs à ce niveau.
Par contre, il y a ici aussi un problème important : le rendu côté client est plus exigeant pour les moteurs de recherche. En effet, lors de leur visite initiale à une telle page, les moteurs de recherche n'y voient que du blanc. Ils doivent utiliser des ressources supplémentaires pour exécuter le JavaScript qui effectuera le rendu. Et généralement, ceci pénalise la page au niveau de son indice de popularité (PageRank).
Si vous débutez en développement Web, je vous ai probablement perdus dans mes explications et c'est normal. L'important, c'est que vous reteniez qu'il y a plusieurs façons de bâtir un site Web et que chacune a ses avantages et ses inconvénients.
Vous comprendrez que la technique la plus intéressante au niveau de la vitesse de rendu est aussi celle qui a la plus grosse courbe d'apprentissage.
Pour débuter, il est généralement plus intéressant d'apprendre à bâtir un site Web de façon traditionnelle.
Une fois que vous aurez assimilé ce processus, vous pourrez intégrer les nouvelles technologies et mieux comprendre leur fonctionnement.
▼Publicité