Có bất kỳ lý do để không làm cho một ứng dụng web chỉ là phía khách hàng?


8

Gần đây tôi đã bắt đầu viết một ứng dụng mô phỏng thuật toán tìm đường trong python.

Nó lấy đầu vào của người dùng, tạo ngẫu nhiên biểu đồ 2d và hiển thị hiển thị mô phỏng qua GUI.

Bây giờ, những gì tôi tìm thấy là Python và các ứng dụng độc lập không phù hợp để chia sẻ loại ứng dụng này, vì bạn cần phải khiến mọi người chạy nó trên máy tính của mình, v.v. họ đến một trang web.

Rõ ràng các yếu tố hiển thị và kiểm soát cần phải được viết ở phía máy khách.

Nhưng thuật toán tìm đường dẫn thực tế có thể được viết ở phía máy khách hoặc máy chủ.

Bây giờ, do không cần phụ trợ phía máy chủ (nghĩa là không có cơ sở dữ liệu), có thể thực hiện toàn bộ ứng dụng web trong HTML / JavaScript phía máy khách.

Câu hỏi đặt ra là, là có một lý do chính đáng không làm điều này?

Cách tôi nhìn thấy, chỉ thực hiện phía máy khách sẽ giảm đáng kể sự phức tạp, bởi vì không cần phải xử lý việc tương tác giữa máy khách và máy chủ. Điều duy nhất mà máy chủ dành cho, là ban đầu phục vụ Javascript cho máy khách.

Mặt khác ... tôi phải viết toàn bộ bằng Javascript ...

Ngoài ra, ý tưởng về việc có một mô-đun mô hình có thể tái sử dụng hấp dẫn tôi. Ví dụ. Nếu sau này tôi muốn có một ứng dụng độc lập, tôi chỉ cần viết các mô-đun Xem / Điều khiển.

Tôi đang tự hỏi những gì nói chung thực tế được chấp nhận sẽ ở đây.


2
Thực tiễn thường được chấp nhận là thực hiện phương pháp đáp ứng tốt nhất các yêu cầu chức năng và phi chức năng của phần mềm của bạn. Ví dụ: nếu bạn không cần dữ liệu hoặc tính toán phía máy chủ và toàn bộ nội dung có thể được giữ trong trình duyệt, thì bạn không chỉ có sẵn một nền tảng đã được cài đặt trên máy của mọi người (trình duyệt), mà cả bạn cũng nhận được hỗ trợ đa nền tảng miễn phí. Trong các tin tức khác, tại sao bạn không thích Javascript?
Robert Harvey

Các trình chuyển đổi Python-to-JavaScript có sẵn, có thể giúp ích cho phần lớn công việc dịch thuật.
Andrew Morton

Xác thực cũng nên xảy ra phía máy chủ, đặc biệt là đối với các trang web phải đối mặt với khách hàng nếu không có nguy cơ nó có thể bị bỏ qua.
garryp

Có bất kỳ lý do mà bạn có thể không muốn cho phép bất cứ ai chạy ứng dụng? Nếu vậy, bạn cần xác thực chúng tại một máy chủ, vì vậy nó không thể là 100% phía máy khách (nhưng chủ yếu vẫn là như vậy)
Mawg nói rằng phục hồi Monica

Tôi đã xây dựng một ứng dụng web như thế này và tôi thực sự hài lòng với kết quả này. Xin lưu ý, ứng dụng web của tôi dựa trên API REST được cung cấp bởi máy chủ bên thứ ba. Tôi cũng tự hỏi tại sao nhiều ứng dụng web không được xây dựng theo cách này.
leif81

Câu trả lời:


8

Bạn đã vạch ra những ưu điểm của việc làm phía ứng dụng khách. Dưới đây là một số nhược điểm có thể có - nếu có hoặc tất cả chúng áp dụng, hãy xem xét chuyển sang một giải pháp dựa trên máy chủ:

  • Hiệu suất. Một giải pháp dựa trên máy khách sẽ chậm hơn đáng kể so với giải pháp dựa trên máy chủ (bao gồm cả lưu lượng truy cập)? Javascript hiện nay rất nhanh, nhưng một thuật toán đắt tiền có thể tính toán có thể yêu cầu phần cứng dành riêng cho máy chủ hoặc trang trại HPC.
  • Năng suất. Nếu bạn là một nhà phát triển Python không có nền tảng JS, thời gian cần thiết để học một ngôn ngữ mới và các thành ngữ của nó có thể bị cấm hoặc ít nhất là lâu hơn so với việc thực hiện logic máy khách / máy chủ. Ngoài ra, có thể có các thư viện Python hữu ích mà bạn có thể sử dụng mà không có sẵn cho JS, điều này sẽ làm tăng đáng kể thời gian phát triển.
  • Sở hữu trí tuệ. Nếu thuật toán này là thứ bạn muốn bảo vệ, việc có sẵn mã trên máy khách có thể là một vấn đề.
  • Khả năng tương thích. Mã dựa trên trình duyệt nhiều hơn có nghĩa là nhiều vấn đề tương thích trình duyệt hơn. Điều này ngày nay dễ dàng hơn nhiều , nhưng vẫn có thể là một mối quan tâm, tùy thuộc vào đối tượng dự định và phạm vi tiếp cận của bạn.

Nói tóm lại, Javascript phía máy khách là một nền tảng hoàn toàn khả thi cho điện toán thuật toán và có thể dễ dàng triển khai cả trình duyệt và ứng dụng độc lập (sử dụng công cụ trình duyệt như Awesomium), nhưng nó có những điểm đáng chú ý. Đi qua họ để đưa ra một lựa chọn sáng suốt.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.