Nedeni istikrardır .
Sunucu tarafında, kararlı bileşenleri seçebilirim. Genellikle bu, Java'yı ve FreeMarker gibi çok dikkatli seçilmiş kütüphaneleri seçtiğim anlamına gelir. Söylemeye gerek yok, Java'nın standart kitaplıklarının dışındaki her kitaplık tek kullanımlık olarak ele alınır, bu nedenle kendi kitaplıklı bir sarıcı aracılığıyla harici kitaplıklara erişirim. Bu, gereksinim ortaya çıkarsa bir kütüphaneden diğerine kolayca değiştirebileceğim anlamına gelir.
Java'yı yeni bir sürüme güncellediğimde, Java iyi sürüm güncellemelerinde bile son derece kararlı bir bileşen olduğu için genellikle iyi çalışır. Ayrıca, sahip olduğum her sunucu aynı Java sürümünü çalıştırıyor. Her istemci aynı JavaScript uygulamasını çalıştırmaz.
İstemci tarafında, kararlı bileşenleri seçemiyorum. Tarayıcı üreticileri beni özellikle sevmediğim bir dili, ama kullanmak zorunda olduğum bir dili seçmeye zorlayacak. (Ve bana JavaScript'e derlenen dillerden bahsetme, korkunç!) Her tarayıcının JavaScript uygulaması farklı. Bu, desteklenen tüm tarayıcı sürümleriyle ürünümü test etmenin tamamen cehennem olduğu anlamına gelir.
Çözümüm? Sunucu tarafında yapabildiğim kadar çok işlem gerçekleştiriyorum ve istemci tarafı sunucuya veri gönderen ve sunucudan JSON ve HTML parçaları biçiminde veri alan hafif bir sarmalayıcı. XML'den kaçının; bunun yerine JSON kullanın.
İstemci tarafı şablonlama yapmıyorum; Sunucudaki içeriği sonra .innerHTML
istemci tarafında çeşitli yer tutucu öğelerin özniteliğini kullanarak atadığım bir HTML parçasına render . Bu, iki şablon motoruna (bir Java ve bir JavaScript) ihtiyacım olmadığından, teknoloji yığınını olabildiğince basit tutar.
Dezavantajı açıkça ışık hızı gecikme; yarım saniye gecikme kıtalar arasında nadir değildir.
Bugünlerde müşterilerinizin akıllı telefonlar olabileceğini düşünün. Akıllı telefonların pil ömrü sınırlıdır, bu nedenle yoğun hesaplama yapıyorsanız, sunucularınıza boşaltmak daha iyidir. Ancak, istemci tarafında yapıldığında basit şeyler daha enerji tasarruflu olabilir, çünkü o zaman radyo erişiminden kaçınabilirsiniz. Ancak ana argüman olan istikrar, sunucuya basit bir hesaplamayı bile boşaltmanın mantıklı olabileceği anlamına gelebilir.
Bir zeyilname olarak, bazı cevaplarda zaten görüldüğü gibi, güvenlik de kazanırsınız . Uygulama mantığı tamamen istemci tarafındaysa, birileri örneğin online web mağazanızdan satın alacakları şey için bir fiyat belirleyebilir.