10

Tôi đang xây dựng một ứng dụng web (khá đơn giản) mà cuối cùng sẽ được sử dụng khá giống nhau trên máy tính để bàn và thiết bị di động. Tôi đang sử dụng Rails trên backend, nhưng ứng dụng thực tế sẽ được xây dựng như một ứng dụng một trang, vì vậy Rails sẽ chỉ đơn giản là phục vụ các tài sản frontend ban đầu và hoạt động như một phụ trợ REST.Javascript MVC framework + jQuery Mobile

Tôi muốn sử dụng jQuery Mobile cho UX được tối ưu hóa cho thiết bị di động, bao gồm chế độ xem danh sách, chạm vào (ví dụ: vuốt để chỉnh sửa mục), v.v. bootstrap hoặc Foundation, nhưng tôi sẽ mang lại lợi ích mạnh mẽ từ UX tối ưu hóa điện thoại di động sâu sắc hơn rằng jQuery Mobile cho phép.)

tôi cũng muốn sử dụng một khuôn khổ Javascript MVC để cấu trúc tốt hơn mã Javascript của tôi. Tôi đã chơi với một vài khung công tác nhưng chưa sử dụng bất kỳ khung công tác nào sâu và vẫn đang tranh luận về lựa chọn cuối cùng.

Câu hỏi chính của tôi là khung công tác MVC (hoặc MVVM) nào đã được chứng minh là hoạt động tốt cùng với jQuery Mobile.

Di động sang một bên, ưu tiên mạnh mẽ của tôi là khung dựa trên dữ liệu như Knockout, Ember, Angular hoặc Batman (trên thực tế, dựa trên các thử nghiệm ban đầu của tôi, tôi khá giống Batman). lớp mô hình thay đổi. Tuy nhiên, tôi có thể thấy điều này xung đột với jQuery Mobile, cũng làm thay đổi đáng kể đối với DOM, cũng muốn sở hữu băm vị trí, v.v.

Một cách khác là sử dụng một trong các khung cấp thấp hơn như Ba lô hoặc Xương sống. Tôi cho rằng lớp định tuyến vẫn sẽ gây ra xung đột, nhưng tôi ít nhất có thể sử dụng mô hình, bộ điều khiển và lớp xem (và đặc biệt là sự kiên trì REST). Hoặc có lẽ có một cách tiếp cận lai, trong đó khung MVC dựa trên ràng buộc dữ liệu được sử dụng cho mọi thứ trong phiên bản máy tính để bàn và lớp xem bằng cách nào đó được trao đổi cho jQuery Mobile trong phiên bản di động, vẫn tận dụng mô hình và bộ điều khiển lớp?

Bất kỳ sự may mắn nào với một trong các khung MVC dựa trên dữ liệu ràng buộc? Bất kỳ may mắn với ba lô hoặc cột sống? Đã làm một trong hai công việc đó đủ tốt với jQuery Mobile mà bạn muốn giới thiệu cho họ? Bất kỳ đề xuất nào khác?

Tôi nhận thấy câu hỏi này có phần mở kết thúc, không có câu trả lời đúng, nhưng tôi cảm thấy rằng đây vẫn là câu hỏi thích hợp cho Stackoverflow.

Trả lời

2

kể từ khi bạn đã có câu trả lời sau khi quá lâu Tôi chỉ có thể đóng góp với phiếu bầu của tôi cho hai khung

Backbone.js là một cổ điển, cộng đồng mạnh mẽ

Tuy nhiên yêu thích của tôi là Ember từ một điểm desgin của lượt xem. Một trong những mục tiêu của Ember.js là làm cho nó tầm thường để tích hợp các công cụ bạn đang sử dụng, và bạn sẽ thấy các hàm jquery được đề cập trong một số ví dụ về tài liệu của nó.

Tôi không chắc chắn về jQuery Mobile, tôi sử dụng chủ yếu với jQuery bình thường, nhưng cho đến nay nhìn tốt

Hãy nhận biết rằng Ember không hy sinh một chút hiệu suất nếu mà đạt được một sự trừu tượng tốt hơn. Tôi thường ủng hộ điều đó.

+0

Cảm ơn trả lời của bạn .Tôi đã không làm việc trên dự án này trong một thời gian, do đó, đã không chọn một ngăn xếp cuối cùng được nêu ra. Tôi chắc rằng Ember.js có thể được thực hiện để làm việc, nhưng tôi vẫn còn hơi hoài nghi rằng nó có thể không phải là một sự kết hợp hoàn hảo với jQuery Mobile. Ngoài ra, hiệu suất có thể là một vấn đề cho thiết bị di động. Ngay bây giờ tôi đang nghiêng về phía sử dụng cột sống (tôi chắc chắn Backbone cũng sẽ ổn). –

+0

Xin chào Mirko. Có nhiều thư viện không được thiết kế để chơi độc đáo cùng với các thư viện khác. Tôi nghe nhiều người ca ngợi Ember vì nó chơi độc đáo với jQuery, tốt hơn Backbone. Trong tìm kiếm của bạn cho một MVC với Javascript được nhận thức rằng bạn sẽ thấy nhiều vi khung. Xương sống là sau, nhẹ và hiệu quả. Những người khác như Ember cố gắng trở thành một giải pháp đầy đủ tập trung vào một vấn đề. Hiệu suất của nó là hơi tồi tệ nhất (vì một lý do chính đáng) và tôi đã không nghe nói về nó phù hợp với môi trường di động như thế nào. – SystematicFrank

1

Nếu bạn đang lo ngại về hiệu suất, tôi đề nghị bạn nên đi với Backbone vì nó không phải là một full-stack framework có nghĩa là nó có thể được khá nhanh để full-stack framework khác so sánh