2012-01-16 39 views
12

Birkaç günlüğüne Node.js'yi öğrenmeye çalışıyorum ama kafam karıştıran bir şey var.Node.js: İstemci Tarafı Templation v/s Sunucu Tarafı Temputlu

JQuery şablonları gibi istemci tarafında geçici bir çözüm ve Jade for Node.js gibi bir sunucu tarafı çözümü arasındaki fark nedir?

Her biri için kullanım nelerdir? Nerelerde kullanılıyorlar? Birlikte kullanılabilirler mi? Her ikisinin birlikte kullanıldığı bir sınav var mı?

Sadece kafamı bu konuya alamıyorum. Buralarda birinden bir şeyler hakkında genel bir bakış olması güzel olurdu ...

cevap

27

İstemci tarafı ve sunucu tarafı templating hakkında dikkate alınması gereken en büyük şey, JavaScript devre dışı bırakılmışsa istemci tarafı şablon oluşturmayacak olmasıdır. her ne sebeple olursa olsun müşteri. Aksi takdirde, bu büyük bir fark değildir. Bu çoğunlukla, sunucuda veya istemcinizde işaretlemenizi oluşturmak isteyip istemediğinize bağlıdır.

İstemci tarafı şablonlarını kullanmanın tipik bir nedeni, ajax, websockets veya benzeri kullanarak sunucudan daha fazla veri yükleyen bir uygulamanız varsa. Böyle bir durumda, yeni yüklenen verileri oluşturmak için bir istemci tarafı şablonuna sahip olmak isteyebilirsiniz.

Örneğin

: - değişmez içeriği kafa, gövde, altbilgi vb: Yazdığım bir uygulamada

, temel biçimlendirme oluşturmak için sunucu üzerinde ejs şablonlar kullanılır.

Uygulama, istemciyi sunucudan bazı olayları ve verileri gönderen socket.io'yu kullanır. Bu verileri görüntülemek için Knockoutjs'un istemci tarafındaki şablonunu kullandım. Bu yüzden benim durumumda bu bir tür karma yaklaşımdır. Bunun böyle yapmamın nedeni, sunucuda oluşturduğum işaretlemenin sayfa yüklendiğinde hemen gösterileceğidir. Socket.io'dan gelen veriler, sunucuda HTML'ye işlenmiş olabilir, ancak bu, basit JSON nesnelerini veya benzerlerini göndermekten daha fazla bant genişliği gerektirecektir, bu yüzden bunları istemci üzerinde oluşturmayı tercih ettim.

Açıkçası, tüm site için istemci tarafı bir şablon kullanmış olabilirim, ancak istemcide statik parçaların oluşturulmasında herhangi bir yarar görmedim. Uygulamamın istemci tarafı kodunu daha da karmaşık hale getirecekti.

İlgili konular