Bonjour à tous.
Suite à la mélasse de code qui commençait à sentir la vase dans l'un des mes fichiers php (celui qui se charge de gérer le contenu de la page web à renvoyer au client), il m'est venu une idée de structure, que je trouve élégante, pratique et légère.
Le principe n'est pas novateur, puisqu'il consiste à séparer sémantique, design et graphisme. Sa description est la suivante:
L'idée est donc d'envoyer le sens (sémantique) de la page web au client, de le laisser le transformer en page HTML/JSON via un XSLT (design), et de laisser ensuite le navigateur traiter le HTML pour lui appliquer le ou les CSS usuels (graphisme).
Mais je bute sur un point:
Vaut-il mieux appliquer le XSLT coté serveur et envoyer du HTML/JSON au client ou bien envoyer du XML avec un lien vers le XSLT et laisser le client faire la transformation vers HTML/JSON?
L'avantage de laisser le client faire la transformation est multiple:
Car je peux, sinon, utiliser un XML coté serveur, le transformer coté serveur via le XSLT, et envoyer le résultat au client, mais cela alourdis la charge du serveur...
Ou alors, peut-être pourrai-je faire la transformation coté serveur sur toutes les pages accessibles en tant que visiteur, et laisser le client faire la transformation si ce client est connecté (et donc, plus que probablement humain, en tous cas, ce n'est pas un SEO).
Votre avis, vos remarques?
Suite à la mélasse de code qui commençait à sentir la vase dans l'un des mes fichiers php (celui qui se charge de gérer le contenu de la page web à renvoyer au client), il m'est venu une idée de structure, que je trouve élégante, pratique et légère.
Le principe n'est pas novateur, puisqu'il consiste à séparer sémantique, design et graphisme. Sa description est la suivante:
- Créer une classe par page web
- Faire hériter chacune de ces classes d'une classe abstraite, 'Stream', qui se comporte comme un document XML
- Permettre aux classes filles de remplir ce doc XML de données
- Envoyer au client (le navigateur web) le fichier XML de 'Stream', ainsi qu'un lien vers un XSLT
- Laisser le navigateur transformer le XML en JSON, HTML ou autre via le XSLT
L'idée est donc d'envoyer le sens (sémantique) de la page web au client, de le laisser le transformer en page HTML/JSON via un XSLT (design), et de laisser ensuite le navigateur traiter le HTML pour lui appliquer le ou les CSS usuels (graphisme).
Mais je bute sur un point:
Vaut-il mieux appliquer le XSLT coté serveur et envoyer du HTML/JSON au client ou bien envoyer du XML avec un lien vers le XSLT et laisser le client faire la transformation vers HTML/JSON?
L'avantage de laisser le client faire la transformation est multiple:
- Le XSLT peut être mis en cache et n'est plus transféré, comme le XML est plus léger que la page HTML, je réduis mon trafic
- Si le client fait la transformation, le serveur se tourne les pouces: la charge serveur diminue
- Si l'utilisateur est un robot ou un autre site web, celui-ci a plus de faciliter de traiter un XML (qu'il ne transformera pas) qu'un HTML
- Tous les clients web supportent-ils XSLT?
- Le résultat du XSLT sera-t-il bien traité par le navigateur (le HTML résultant du XSLT sera-t-il traité comme s'il venait du serveur, ce qui inclus le traitement des balises meta/CSS et script/AJAX)?
- Quid des crawlers web? Google va-t-il bien voir le HTML après transformation ou va-t-il coincer sur le XML?
Car je peux, sinon, utiliser un XML coté serveur, le transformer coté serveur via le XSLT, et envoyer le résultat au client, mais cela alourdis la charge du serveur...
Ou alors, peut-être pourrai-je faire la transformation coté serveur sur toutes les pages accessibles en tant que visiteur, et laisser le client faire la transformation si ce client est connecté (et donc, plus que probablement humain, en tous cas, ce n'est pas un SEO).
Votre avis, vos remarques?