Lý do là sự ổn định .
Về phía máy chủ, tôi có thể chọn các thành phần ổn định. Thông thường, điều này có nghĩa là tôi chọn Java và một loạt các thư viện được chọn rất cẩn thận như FreeMarker. Không cần phải nói, mọi thư viện ngoài các thư viện tiêu chuẩn của Java đều được coi là dùng một lần, vì vậy tôi truy cập các thư viện bên ngoài thông qua trình bao bọc tự tạo. Điều này có nghĩa là tôi có thể dễ dàng thay đổi từ thư viện này sang thư viện khác nếu yêu cầu phát sinh.
Bất cứ khi nào tôi cập nhật Java lên phiên bản mới, nó thường hoạt động tốt vì Java là một thành phần cực kỳ ổn định ngay cả trên các bản cập nhật phiên bản chính. Ngoài ra, mọi máy chủ tôi có đều chạy cùng một phiên bản Java. Không phải mọi khách hàng đang chạy cùng một triển khai JavaScript.
Về phía khách hàng, tôi không thể chọn các thành phần ổn định. Các nhà sản xuất trình duyệt sẽ buộc tôi chọn JavaScript, ngôn ngữ mà tôi đặc biệt không thích, nhưng ngôn ngữ mà tôi buộc phải sử dụng. (Và đừng nói với tôi về các ngôn ngữ được biên dịch thành JavaScript, chúng thật kinh khủng!) Việc triển khai JavaScript của mọi trình duyệt là khác nhau. Điều này có nghĩa là nó hoàn toàn là một địa ngục để kiểm tra sản phẩm của tôi với mọi phiên bản trình duyệt được hỗ trợ.
Giải pháp của tôi? Tôi thực hiện xử lý nhiều nhất có thể ở phía máy chủ và phía máy khách chỉ là một trình bao bọc nhẹ gửi dữ liệu đến máy chủ và nhận dữ liệu từ máy chủ dưới dạng các đoạn JSON và HTML. Tránh XML; sử dụng JSON thay thế.
Tôi không làm khuôn mẫu phía khách hàng; Tôi kết xuất nội dung trên máy chủ thành một đoạn HTML mà sau đó tôi gán .innerHTML
thuộc tính cho các thành phần giữ chỗ khác nhau ở phía máy khách. Điều này giữ cho ngăn xếp công nghệ đơn giản nhất có thể, bởi vì tôi không cần hai công cụ mẫu (một Java và một JavaScript).
Hạn chế rõ ràng là độ trễ tốc độ ánh sáng; nửa giây độ trễ không phải là hiếm giữa các châu lục.
Hãy xem xét rằng khách hàng của bạn những ngày này có thể là điện thoại thông minh. Điện thoại thông minh có thời lượng pin hạn chế, vì vậy nếu bạn đang tính toán nặng, tốt hơn hết là giảm tải cho máy chủ của bạn. Tuy nhiên, những điều đơn giản có thể tiết kiệm năng lượng hơn khi được thực hiện ở phía máy khách vì sau đó bạn có thể tránh truy cập radio. Nhưng đối số chính, tính ổn định, có thể có nghĩa là nó thực sự có thể có ý nghĩa để giảm tải ngay cả tính toán đơn giản cho máy chủ.
Là một phụ lục, như đã được quan sát trong một số câu trả lời, bạn cũng có được sự bảo mật . Nếu logic ứng dụng hoàn toàn thuộc về phía khách hàng, thì ai đó có thể đặt giá cho bất cứ thứ gì họ sẽ mua từ cửa hàng web trực tuyến của bạn.