Em um site de comércio eletrônico, ao adicionar um item a um carrinho, eu gostaria de mostrar uma janela pop-up com as opções que você pode escolher. Imagine que você está comprando um iPod Shuffle e agora precisa escolher a cor e o texto a gravar.
Gostaria que a janela fosse modal, então estou usando uma mesa de luz preenchida por uma chamada do Ajax. Agora eu tenho duas opções:
Opção 1: envie apenas os dados e gere a marcação HTML usando JavaScript
O que é legal nisso é que ele reduz a solicitação do Ajax ao mínimo possível e não mistura os dados com a marcação.
O que não é tão bom nisso é que agora eu preciso usar JavaScript para fazer minha renderização, em vez de ter um mecanismo de modelo no lado do servidor. Talvez eu consiga limpar um pouco a abordagem usando uma solução de modelo do cliente .
Opção 2: envie a marcação HTML
O que é bom nisso é que posso ter o mesmo mecanismo de modelagem do lado do servidor que estou usando para o resto das minhas tarefas de renderização (Django), fazer a renderização da mesa de luz. JavaScript é usado apenas para inserir o fragmento HTML na página. Portanto, deixa claramente a renderização no mecanismo de renderização. Faz sentido para mim.
Mas não me sinto confortável misturando dados e marcação em uma chamada do Ajax por algum motivo. Não sei ao certo o que me deixa desconfortável com isso. Quero dizer, é da mesma maneira que todas as páginas da web são exibidas - dados mais marcação - certo?