10

Câu hỏi này liên quan đến sự đồng nghĩa của hai khung MVC (ở phía máy khách và phía máy chủ).Các khung MVC Javascript và khung bên máy chủ

Một số nền: Tôi khá mới để phát triển web, nhưng tôi là một lập trình viên rất thành thạo. Tôi đã học javascript và Django chỉ gần đây. Giao diện người dùng cho ứng dụng của tôi khá rộng rãi và do đó tôi đã quyết định sử dụng một khung công tác. Tôi hiện đang đọc trên các khuôn khổ có sẵn và tôi đang hướng tới backbone.js + jquery.

Vấn đề của tôi là tôi không hiểu đầy đủ về cách mà một khung MVC như backbone.js có thể cùng tồn tại với một khung công tác phía máy chủ như Django.

Từ những gì tôi hiểu về backbone.js, khi có thay đổi đối với mô hình, các chế độ xem tương ứng liên quan đến mô hình sẽ tự động được cập nhật. Ở đây, chúng tôi đang đề cập đến "quan điểm" của khuôn khổ phía khách hàng phải không? Liệu một "view" có giao tiếp với "controller" của backend framework không?

Cấu trúc thư mục có thể như thế nào? Một kiến ​​trúc như vậy có tệ không?

Câu hỏi có ý nghĩa không? hoặc tôi bị mất?

Edit: Để thêm một số rõ ràng: Tôi đoán câu hỏi thiết yếu của tôi là: Làm thế nào một trang duy nhất JS ứng dụng web phức tạp được cấu trúc trên client-side (espertially nếu u đang sử dụng một khuôn khổ phía khách hàng)? Cụ thể là tôi tò mò về cách cấu trúc ứng dụng một cách sạch sẽ về các đối tượng mô hình của nó, các thành phần giao diện người dùng, bất kỳ bộ điều khiển nào và các đối tượng xử lý sự kiên trì của máy chủ.

Trả lời

7

Tôi có thể nói về Rails/Backbone, nhưng tôi không thể tưởng tượng rằng Django sẽ khác nhiều.

Đầu tiên, khung công tác MVC phía máy khách như Backbone không chỉ dành cho các ứng dụng đơn lẻ. Bạn cũng có thể sử dụng nó để thêm một số tương tác phong phú vào một hoặc nhiều lượt xem của một ứng dụng truyền thống hơn. Chúng đơn giản cung cấp cấu trúc và trừu tượng hóa dữ liệu trên máy khách.

Tiếp theo, các khung công tác phía máy khách này được thiết kế đặc biệt để hoạt động với các khung công tác MVC back-end của bạn. Backbone.js (vì bạn đã gắn thẻ nó một cách cụ thể) các mô hình và các bộ sưu tập làm việc với các dịch vụ REST. Họ sẽ nói chuyện qua các động từ GET/POST/PUT/DELETE và cuối cùng sẽ giao tiếp với các bộ điều khiển của bạn trên back-end khi chúng đưa ra các yêu cầu không đồng bộ.

Trong trường hợp Backbone, nó nói JSON thay vì HTML. Trong trường hợp của Rails, điều này thực sự dễ dàng được xử lý trong bộ điều khiển. Nếu yêu cầu là một yêu cầu HTML, thì bạn sẽ trả lại dạng xem dưới dạng HTML. Nếu nó là một yêu cầu JSON (* .json hoặc Content-type) thì bộ điều khiển trả về một biểu diễn JSON của dữ liệu. Tôi giả định rằng nó là dễ dàng trong Django vì nó là trong Rails để có cùng một bộ điều khiển đáp ứng nhiều yêu cầu nội dung (HTML, XML, JSON, vv)

+0

Cảm ơn bạn. Đó là một phản ứng hữu ích. –

Các vấn đề liên quan