Introduction
Créer une application monopage (SPA) peut souvent sembler complexe et lourd. Habituellement, cela implique un framework JavaScript pour le rendu, une API pour servir le JSON, et deux bases de code indépendantes qui doivent communiquer efficacement. C'est devenu la norme, mais ce n'est pas la seule voie. Une approche alternative, connue sous le nom de HTML over WebSockets, gagne en popularité.
Qu'est-ce que HTML over WebSockets ?
HTML over WebSockets propose une méthode où le serveur envoie directement l'HTML déjà construit au client, éliminant ainsi la nécessité de prétraiter JSON dans le navigateur. Toute la logique de rendu reste côté serveur, unifiant le code en une seule langue sans besoin d'API. Ce modèle est souvent appelé hypermédia ou HTML over the wire.
Pourquoi utiliser WebSockets ?
Les WebSockets offrent un canal bidirectionnel permanent entre le client et le serveur, ce qui permet une communication en temps réel. Contrairement au HTTP ou SSE (Server-Sent Events), les WebSockets permettent une latence plus faible et un échange de données plus fluide, essentiel pour les applications nécessitant des mises à jour en temps réel.
Origine et Cas d'Usage
Chris McCord a présenté LiveView lors de l'ElixirConf 2019, démontrant comment construire un clone de Twitter en temps réel sans JavaScript de rendu. Depuis, cette approche a inspiré d'autres implémentations dans divers langages, comme Django LiveView pour Python.
Exemples d'utilisation
- Applications financières : Les plateformes de trading bénéficient de mises à jour en temps réel des flux de marché.
- Jeux en ligne : L'interactivité et la réactivité sont essentielles, et les WebSockets offrent une expérience utilisateur fluide.
- Chat en temps réel : Les applications de messagerie peuvent offrir une latence réduite et une mise à jour instantanée des messages.
Comment ça fonctionne ?
Bien que JavaScript soit toujours utilisé côté client, son rôle est limité à établir le canal de communication WebSocket et à placer l'HTML reçu. Cela simplifie considérablement le développement côté client et réduit les erreurs potentielles liées au rendu.
Avantages
- Performance : Réduction de la latence grâce à l'absence de rendu côté client.
- Simplicité : Moins de code à maintenir, une seule base de code pour le rendu.
- Scalabilité : Les serveurs peuvent gérer plus de connexions simultanées avec une charge réduite.
Quand l'utiliser ?
HTML over WebSockets est particulièrement bénéfique pour les applications nécessitant un feedback instantané ou des interactions utilisateur fréquentes. Cependant, pour les applications plus simples ou celles où les fonctionnalités de rendu côté client sont cruciales, une approche traditionnelle peut encore être préférée.
Conclusion
HTML over WebSockets offre une alternative puissante et élégante pour développer des SPAs en temps réel. En réduisant la dépendance au JavaScript et en centralisant la logique de rendu, cette approche simplifie le développement tout en améliorant la performance.
Discutons de ton projet en 15 minutes.