Podczas dodawania przedmiotu do koszyka w witrynie e-commerce chciałbym wyświetlić wyskakujące okno z opcjami, które możesz wybrać. Wyobraź sobie, że zamawiasz iPoda Shuffle, a teraz musisz wybrać kolor i tekst do grawerowania.
Chciałbym, aby okno było modalne, więc używam lightbox wypełnionego wywołaniem Ajax. Teraz mam dwie opcje:
Opcja 1: Wyślij tylko dane i wygeneruj znaczniki HTML za pomocą JavaScript
Zaletą jest to, że ogranicza żądanie Ajax do minimum niedźwiedzia i nie łączy danych ze znacznikami.
Nie jest tak świetne w tym, że teraz muszę używać JavaScript do renderowania, zamiast mieć silnik szablonów po stronie serwera. Być może będę w stanie trochę oczyścić to podejście, używając rozwiązania szablonowego po stronie klienta .
Opcja 2: Wyślij znacznik HTML
Co dobre w tym, że mogę mieć ten sam silnik szablonów po stronie serwera, którego używam do reszty moich zadań renderowania (Django), do renderowania lightbox. JavaScript służy tylko do wstawiania fragmentu HTML na stronie. Więc wyraźnie pozostawia renderowanie w silniku renderującym. Dla mnie to ma sens.
Ale z jakiegoś powodu nie czuję się komfortowo mieszając dane i znaczniki w wywołaniu Ajax. Nie jestem pewien, co sprawia, że czuję się z tego powodu nieswojo. Mam na myśli, że w ten sam sposób wyświetlana jest każda strona internetowa - dane plus znaczniki - prawda?