Nó đi như thế này:
Servers là đắt tiền, nhưng người dùng sẽ cung cấp cho bạn thời gian xử lý trong trình duyệt của họ miễn phí. Do đó, mã phía máy chủ tương đối đắt so với mã phía máy khách trên bất kỳ trang web nào đủ lớn để cần chạy nhiều máy chủ. Tuy nhiên, có một số điều bạn không thể để lại cho khách hàng, như xác thực dữ liệu và truy xuất. Bạn muốn thực hiện chúng trên máy khách, vì nó có nghĩa là thời gian phản hồi nhanh hơn cho người dùng và cơ sở hạ tầng máy chủ ít hơn cho chính bạn, nhưng mối quan tâm về bảo mật và khả năng truy cập có nghĩa là mã phía máy chủ là bắt buộc.
Điều thường xảy ra là bạn làm cả hai. Bạn viết logic phía máy chủ bởi vì bạn phải, nhưng bạn cũng viết cùng một logic trong javascript với hy vọng cung cấp phản hồi nhanh hơn cho người dùng và lưu máy chủ của bạn thêm một chút công việc trong một số trường hợp. Điều này đặc biệt hiệu quả đối với mã xác nhận.
Vì tất cả chúng ta (chủ yếu là) các lập trình viên ở đây nên ngay lập tức phát hiện ra vấn đề mới. Không chỉ có thêm công việc liên quan đến việc phát triển hai bộ logic giống nhau, mà còn cả công việc liên quan đến việc duy trì nó, các lỗi không thể tránh khỏi phát sinh từ các nền tảng không phù hợp, và các lỗi được giới thiệu khi triển khai trôi dạt theo thời gian.
Nhập javascript phía máy chủ. Ý tưởng là bạn có thể viết mã một lần, vì vậy cùng một mã chạy trên cả máy chủ và máy khách. Điều này sẽ xuất hiện để giải quyết hầu hết vấn đề: bạn nhận được toàn bộ logic máy chủ và máy khách được thực hiện cùng một lúc, không có trôi dạt và không có bảo trì kép. Nó cũng tốt đẹp khi các nhà phát triển của bạn chỉ cần biết một ngôn ngữ cho cả máy chủ và công việc của khách hàng.
Thật không may, trong thế giới thực nó không hoạt động tốt như vậy. Vấn đề là bốn lần:
- Chế độ xem máy chủ của trang vẫn rất khác với chế độ xem khách hàng của trang. Máy chủ cần có khả năng thực hiện những việc như nói chuyện trực tiếp với cơ sở dữ liệu mà không nên thực hiện từ trình duyệt. Trình duyệt cần thực hiện các thao tác như thao tác một DOM không khớp với máy chủ.
- Bạn không kiểm soát công cụ javascript của khách hàng, có nghĩa là vẫn sẽ có những khác biệt ngôn ngữ quan trọng giữa mã máy chủ và mã máy khách của bạn.
- Cơ sở dữ liệu thường là một nút cổ chai lớn hơn so với máy chủ web, do đó tiết kiệm được tối thiểu.
- Trong khi hầu như mọi người đều biết một chút javascript, không nhiều nhà phát triển thực sự biết và hiểu javascript cũng.
Đây không phải là vấn đề kỹ thuật hoàn toàn không thể thực hiện được: bạn hạn chế ngôn ngữ được máy chủ hỗ trợ cho một tập con javascript được hỗ trợ tốt trên hầu hết các trình duyệt, cung cấp IDE biết tập hợp con này và phần mở rộng phía máy chủ thực hiện một số quy tắc về cấu trúc trang để giảm thiểu các vấn đề DOM, và cung cấp một số javascript tấm nồi hơi để đưa vào máy khách để làm nền tảng đẹp hơn một chút để sử dụng. Kết quả là một cái gì đó giống như Aptana Studio/Jaxer, hoặc gần đây hơn Node.js, có thể khá đẹp.
Nhưng không hoàn hảo. Theo tôi, chỉ có quá nhiều cạm bẫy và các vấn đề tương thích nhỏ để làm cho điều này thực sự tỏa sáng. Cuối cùng, các máy chủ bổ sung vẫn rẻ so với thời gian của nhà phát triển và hầu hết các lập trình viên có thể làm việc hiệu quả hơn bằng cách sử dụng một cái gì đó khác với javascript.
Điều tôi thực sự muốn thấy là một phần phía máy chủ javascript. Khi trang được yêu cầu hoặc biểu mẫu đã gửi nền tảng máy chủ, hãy thực hiện yêu cầu xác thực trong javascript, có thể là plugin cho máy chủ web hoàn toàn độc lập với phần còn lại của nó, nhưng phản hồi được tạo bằng nền tảng bạn chọn .
Thật tuyệt vời! Tốc độ đánh máy! –
Không có cách nào bạn chỉ cần gõ rằng ...: p –
:) Thời gian _last_ ai đó hỏi một câu hỏi như thế này nó đã được đóng cửa ngay trước khi tôi có thể nhấn gửi. Tôi đã có đủ công việc trong bài đăng, tôi quyết định lưu nó. –