เหตุผลก็คือความมั่นคง
ในฝั่งเซิร์ฟเวอร์ฉันสามารถเลือกส่วนประกอบที่มั่นคง ปกติแล้วนี่หมายความว่าฉันเลือก Java และไลบรารีที่คัดสรรมาอย่างดีเช่น FreeMarker จำเป็นต้องพูดทุกไลบรารี่นอกเหนือจากไลบรารี่มาตรฐานของจาวานั้นถือว่าเป็นแบบใช้แล้วทิ้งดังนั้นฉันจึงเข้าถึงไลบรารี่ภายนอกผ่าน wrapper ที่ทำเองได้ นี่หมายความว่าฉันสามารถเปลี่ยนจากห้องสมุดหนึ่งไปอีกห้องสมุดหนึ่งได้อย่างง่ายดายถ้ามีข้อกำหนดเกิดขึ้น
เมื่อใดก็ตามที่ฉันอัปเดต Java เป็นเวอร์ชันใหม่มักจะทำงานได้ดีเพราะ Java เป็นองค์ประกอบที่มีความเสถียรสูงแม้ในการอัปเดตเวอร์ชันหลัก และเซิร์ฟเวอร์ทุกตัวที่ฉันใช้นั้นใช้จาวาเวอร์ชันเดียวกัน ไม่ใช่ว่าลูกค้าทุกคนใช้จาวาสคริปต์เดียวกัน
ในฝั่งไคลเอ็นต์ฉันไม่สามารถเลือกส่วนประกอบที่มั่นคงได้ ผู้สร้างเบราว์เซอร์จะบังคับให้ฉันเลือก JavaScript ซึ่งเป็นภาษาที่ฉันไม่ชอบเป็นพิเศษ แต่เป็นภาษาที่ฉันถูกบังคับให้ใช้ (และอย่าบอกฉันเกี่ยวกับภาษาที่คอมไพล์ไปยัง JavaScript มันแย่มาก!) การติดตั้ง JavaScript ของเบราว์เซอร์ทุกตัวนั้นแตกต่างกัน ซึ่งหมายความว่าเป็นนรกทั้งหมดในการทดสอบผลิตภัณฑ์ของฉันกับเบราว์เซอร์ทุกรุ่นที่รองรับ
ทางออกของฉัน? ฉันทำการประมวลผลมากที่สุดเท่าที่จะทำได้ในฝั่งเซิร์ฟเวอร์และฝั่งไคลเอ็นต์เป็นเพียง wrapper ขนาดเบาที่ส่งข้อมูลไปยังเซิร์ฟเวอร์และรับข้อมูลจากเซิร์ฟเวอร์ในรูปแบบของ JSON และ HTML แฟรกเมนต์ หลีกเลี่ยง XML; ใช้ JSON แทน
ฉันไม่ได้ทำเทมเพลตฝั่งไคลเอ็นต์ ฉันแสดงเนื้อหาบนเซิร์ฟเวอร์ให้เป็นส่วนย่อยของ HTML ที่ฉันกำหนดให้โดยใช้.innerHTML
แอตทริบิวต์ให้กับองค์ประกอบตัวแทนต่างๆในฝั่งไคลเอ็นต์ สิ่งนี้ทำให้เทคโนโลยีสแต็คง่ายที่สุดเท่าที่จะเป็นไปได้เพราะฉันไม่ต้องการเทมเพลตเอ็นจิ้นสองอัน (Java one และ JavaScript หนึ่ง)
ข้อเสียเปรียบคือความล่าช้าของความเร็วที่เห็นได้ชัด ครึ่งวินาทีของความหน่วงแฝงไม่ใช่เรื่องผิดปกติระหว่างทวีป
โปรดพิจารณาว่าลูกค้าของคุณในวันนี้อาจเป็นสมาร์ทโฟน สมาร์ทโฟนมีอายุการใช้งานแบตเตอรี่ที่ จำกัด ดังนั้นหากคุณทำการคำนวณอย่างหนัก อย่างไรก็ตามสิ่งที่เรียบง่ายสามารถประหยัดพลังงานได้มากขึ้นเมื่อดำเนินการในฝั่งไคลเอ็นต์เพราะคุณสามารถหลีกเลี่ยงการเข้าถึงวิทยุได้ แต่อาร์กิวเมนต์หลักความเสถียรอาจหมายถึงว่ามันอาจทำให้รู้สึกถึงการถ่ายที่คำนวณได้ง่ายแม้แต่กับเซิร์ฟเวอร์
ในฐานะที่เป็นภาคผนวกที่สังเกตเห็นแล้วในบางคำตอบคุณจะได้รับความปลอดภัยเช่นกัน ถ้าตรรกะของแอปพลิเคชันนั้นอยู่ที่ฝั่งลูกค้าบางคนสามารถกำหนดราคาเป็นสิ่งที่พวกเขากำลังจะซื้อจากร้านค้าออนไลน์บนเว็บของคุณ