На сайте электронной коммерции при добавлении товара в корзину я бы хотел показать всплывающее окно с опциями, которые вы можете выбрать. Представьте, что вы заказываете iPod Shuffle, и теперь вам нужно выбрать цвет и текст для гравировки.
Мне бы хотелось, чтобы окно было модальным, поэтому я использую лайтбокс, заполненный Ajax-вызовом. Теперь у меня есть два варианта:
Вариант 1. Отправка только данных и создание разметки HTML с использованием JavaScript.
Что хорошо в этом, так это то, что он сокращает Ajax-запрос до минимума и не смешивает данные с разметкой.
Что не так хорошо в этом, так это то, что теперь мне нужно использовать JavaScript для рендеринга, вместо того, чтобы делать это на стороне сервера. Я мог бы немного очистить подход, используя шаблонное решение на стороне клиента .
Вариант 2. Отправьте разметку HTML
Что хорошо в этом, так это то, что у меня может быть тот же серверный шаблонизатор, который я использую для остальных моих задач рендеринга (Django), для рендеринга лайтбокса. JavaScript используется только для вставки фрагмента HTML на страницу. Так что он явно оставляет рендеринг движку рендеринга. Имеет смысл для меня.
Но по какой-то причине мне не удобно смешивать данные и разметку в вызове Ajax. Я не уверен, что заставляет меня чувствовать себя неловко по этому поводу. Я имею в виду, что все веб-страницы обслуживаются одинаково - данные плюс разметка - верно?