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?
Jawaban:
JSON seharusnya hanya berisi data dan tidak ada markup. Dalam jangka panjang, pendekatan ini lebih dapat diperluas karena ada potensi untuk menggunakan data JSON di bagian lain situs Anda. Jika Anda memasukkan markup maka menggunakan data yang sama untuk mengisi template lain menjadi jauh lebih sulit.
sumber
Saya akan mengirim data dalam permintaan dan membangun markup di js. Satu manfaat tambahan adalah penggunaan bandwidth akan lebih sedikit. Ini semacam preferensi pribadi tetapi menjaga markup sisi klien dari sisi server mungkin adalah ide yang lebih baik. Saya memiliki situs web Django juga dan saya hanya menggunakan sistem templating untuk meletakkan beberapa json varibles pada halaman (kurang dari ajax req. Untuk dibuat) dan menggunakan file src ketika mengembangkan pada mesin saya. Semua sisi klien dilakukan dengan ExtJS.
sumber
Saya pikir Anda sudah bicara tentang pro dan kontra dari keduanya. Mengapa tidak melihat opsi ke-3 agar javascript untuk lightbox Anda dihasilkan dari tampilan django. Lalu apakah JSON Anda hanya berisi data untuk memperbaruinya untuk setiap tampilan?
Apa yang Anda harus dapat lakukan adalah membungkus semua kode templating ke dalam variabel javascript dan kemudian output dengan javascript setelah menerima permintaan JSON di sisi klien.
sumber
Anda harus menggunakan mesin template untuk markup dan menyimpan bidang tersembunyi di suatu tempat untuk menyimpan nilai, yang kemudian dapat Anda temukan di dokumen menggunakan pemilih.
sumber