Dans un site de commerce électronique, lors de l'ajout d'un article à un panier, j'aimerais afficher une fenêtre contextuelle avec les options que vous pouvez choisir. Imaginez que vous commandez un iPod Shuffle et que vous devez maintenant choisir la couleur et le texte à graver.
J'aimerais que la fenêtre soit modale, donc j'utilise une lightbox remplie par un appel Ajax. Maintenant, j'ai deux options:
Option 1: envoyer uniquement les données et générer le balisage HTML à l'aide de JavaScript
Ce qui est bien, c'est qu'il réduit la demande Ajax au minimum et ne mélange pas les données avec le balisage.
Ce qui n'est pas si génial, c'est que je dois maintenant utiliser JavaScript pour faire mon rendu, au lieu d'avoir un moteur de modèle côté serveur. Je pourrais peut-être nettoyer un peu l'approche en utilisant une solution de modélisation côté client .
Option 2: envoyer le balisage HTML
Ce qui est bien, c'est que je peux avoir le même moteur de modèle côté serveur que j'utilise pour le reste de mes tâches de rendu (Django), faire le rendu de la lightbox. JavaScript n'est utilisé que pour insérer le fragment HTML dans la page. Il laisse donc clairement le rendu au moteur de rendu. Ça a du sens pour moi.
Mais je ne me sens pas à l'aise de mélanger les données et le balisage dans un appel Ajax pour une raison quelconque. Je ne sais pas ce qui me met mal à l'aise. Je veux dire, c'est la même façon dont chaque page Web est servie - données et balisage - non?