Aslında her iki tarafta da biraz varım:
- Javascript tarafında ihtiyacım olan veri olduğunda , JSON kullanıyorum
- Javascript tarafında ihtiyacım olan herhangi bir hesaplama yapmayacağım sunum olduğunda , genellikle HTML kullanın
HTML kullanmanın temel avantajı, sayfanızın tam bir bölümünü Ajax isteğinden geri gelenlerle değiştirmek istediğiniz zamandır:
- JS'de sayfanın bir bölümünü yeniden oluşturmak oldukça zor
- Muhtemelen sunucu tarafında zaten bir şablon var, bu ilk etapta sayfayı oluşturmak için kullanıldı ... Neden tekrar kullanmıyorsunuz?
Genellikle en azından sunucuda, şeylerin "performans" tarafını gerçekten dikkate almaz:
- Sunucuda, HTML'nin bir kısmını veya bazı JSON'ları oluşturmak, muhtemelen bu kadar büyük bir fark yaratmayacaktır.
- Ağ üzerinden geçen öğelerin boyutu hakkında: Eh, muhtemelen yüzlerce KB veri / html kullanmıyorsunuz ... Aktardığınız her şeyde gzip kullanmak, en büyük farkı yaratacak şeydir (HTML arasında seçim yapmamak) ve JSON)
- Dikkate alınabilecek bir şey , JSON verilerinden HTML'yi (veya DOM yapısını) yeniden oluşturmak için istemcide hangi kaynaklara ihtiyacınız olduğunu ... HTML'nin bir kısmını sayfaya itmekle karşılaştırın; -)
Son olarak, kesinlikle önemli olan bir şey:
- JS'nin veriyi sayfaya HTML olarak enjekte etmesi için gereken JSON + kodu olarak veri gönderecek yeni bir sistem geliştirmeniz ne kadar sürer?
- HTML'yi döndürmek ne kadar sürer? Halihazırda var olan sunucu tarafı kodlarınızdan bazılarını tekrar ne kadar süre kullanabilirsiniz?
Ve başka bir yanıtı cevaplamak için: sayfanın birden fazla bölümünü güncellemeniz gerekiyorsa, tüm bu parçaları birkaç HTML bölümünü gruplayan ve JS'de ilgili parçaları ayıklayan büyük bir dizenin içinde göndermenin çözümü / kesmek hala mevcuttur.
Örneğin, şuna benzer bir dize döndürebilirsiniz:
<!-- MARKER_BEGIN_PART1 -->
here goes the html
code for part 1
<!-- MARKER_END_PART1 -->
<!-- MARKER_BEGIN_PART2 -->
here goes the html
code for part 2
<!-- MARKER_END_PART2 -->
<!-- MARKER_BEGIN_PART3 -->
here goes the json data
that will be used to build part 3
from the JS code
<!-- MARKER_END_PART3 -->
Bu gerçekten iyi görünmüyor, ancak kesinlikle kullanışlı (çoğunlukla HTML verileri JSON içine alınamayacak kadar büyük olduğunda, birkaç kez kullandım) : sayfanın bölümleri için HTML gönderiyorsunuz sunum gerekiyor ve verilere ihtiyacınız olan durum için JSON gönderiyorsunuz ...
... Ve bunları çıkarmak için, JS alt dize yöntemi hile yapacak, sanırım ;-)