Di situs e-commerce, saat menambahkan item ke troli, saya ingin menampilkan jendela sembulan dengan opsi yang dapat Anda pilih. Bayangkan Anda memesan iPod Shuffle dan sekarang Anda harus memilih warna dan teks untuk diukir.
Saya ingin jendela menjadi modal, jadi saya menggunakan lightbox yang diisi oleh panggilan Ajax. Sekarang saya punya dua opsi:
Opsi 1: Kirim hanya data, dan hasilkan markup HTML menggunakan JavaScript
Apa yang baik tentang ini adalah bahwa ia memangkas permintaan Ajax ke beruang minimum dan tidak mencampur data dengan markup.
Apa yang tidak begitu hebat tentang ini adalah bahwa sekarang saya harus menggunakan JavaScript untuk melakukan rendering, alih-alih memiliki mesin template di sisi server yang melakukannya. Saya mungkin bisa sedikit membersihkan pendekatan dengan menggunakan solusi templating sisi klien .
Opsi 2: Kirim markup HTML
Apa yang baik tentang ini adalah bahwa saya dapat memiliki mesin templating sisi-server yang sama yang saya gunakan untuk sisa tugas rendering saya (Django), melakukan rendering lightbox. JavaScript hanya digunakan untuk menyisipkan fragmen HTML ke halaman. Jadi jelas meninggalkan rendering ke mesin rendering. Masuk akal bagi saya.
Tapi saya merasa tidak nyaman mencampurkan data dan markup dalam panggilan Ajax untuk beberapa alasan. Saya tidak yakin apa yang membuat saya merasa tidak nyaman tentang hal itu. Maksud saya, ini adalah cara yang sama setiap halaman web disajikan - data plus markup - benar?