Auf einer E-Commerce-Website möchte ich beim Hinzufügen eines Artikels zu einem Warenkorb ein Popup-Fenster mit den verfügbaren Optionen anzeigen. Stellen Sie sich vor, Sie bestellen einen iPod Shuffle und müssen nun die Farbe und den Text für die Gravur auswählen.
Ich möchte, dass das Fenster modal ist, also verwende ich einen Leuchtkasten, der von einem Ajax-Aufruf ausgefüllt wird. Jetzt habe ich zwei Möglichkeiten:
Option 1: Senden Sie nur die Daten und generieren Sie das HTML-Markup mit JavaScript
Das Schöne daran ist, dass die Ajax-Anforderung auf ein Minimum reduziert wird und die Daten nicht mit dem Markup gemischt werden.
Das Schöne daran ist, dass ich jetzt JavaScript für das Rendern verwenden muss, anstatt dass es auf der Serverseite von einer Vorlagen-Engine ausgeführt wird. Möglicherweise kann ich den Ansatz mithilfe einer clientseitigen Templating-Lösung ein wenig aufräumen .
Option 2: Senden Sie das HTML-Markup
Das Gute daran ist, dass ich dieselbe serverseitige Templating-Engine verwenden kann, die ich für den Rest meiner Rendering-Aufgaben (Django) verwende, also das Rendern des Leuchtkastens. JavaScript wird nur verwendet, um das HTML-Fragment in die Seite einzufügen. Das Rendering wird also eindeutig der Rendering-Engine überlassen. Für mich ergibt das Sinn.
Aus irgendeinem Grund ist es mir jedoch unangenehm, Daten und Markups in einem Ajax-Aufruf zu mischen. Ich bin mir nicht sicher, warum mir das unangenehm ist. Ich meine, es ist die gleiche Art und Weise, wie jede Webseite bedient wird - Daten plus Markup - richtig?