Các mẫu cho các ứng dụng web nặng ajax


12

Cho đến bây giờ, tôi là một fan hâm mộ lớn của mẫu MVC để phát triển các ứng dụng web. Đối với web, tôi đã phát triển chủ yếu bằng PHP (với khung Kohana và CodeIgniter) và Ruby (RoR).

Khi các ứng dụng của tôi trở nên nặng nề hơn về phía Ajax (các ứng dụng một trang, v.v.) tôi nhận thấy rằng tôi không thể không phản bội các khái niệm rất cơ bản của MVC: Javascript đang thực hiện hầu hết các công việc; gọi bộ điều khiển chỉ để yêu cầu lượt xem hoặc nhiều mã js / json có vẻ sai.

Sau khi cố gắng giữ tất cả các công việc định tuyến trong bộ điều khiển, bây giờ tôi về cơ bản đã phân chia nó giữa chúng và Javascript (nghĩa là, từ PoV của khung, một phần của các khung nhìn). Khi yêu cầu json, lật đổ MVC trông thậm chí còn rõ ràng hơn: mã js thực hiện yêu cầu bộ điều khiển; bộ điều khiển của khung công tác chỉ đóng vai trò là proxy cho dữ liệu của mô hình - điều tôi thực sự yêu cầu.

Vì vậy, tôi nên nhìn vào cái gì?

Tôi đã suy nghĩ về các ứng dụng javascript thuần túy, ví dụ với backbone.js và cơ sở dữ liệu json-spits dựa trên tài liệu (couchDB) làm phụ trợ, nhưng tôi thích cơ sở dữ liệu quan hệ của mình.

Một tùy chọn khác sẽ là như sau: Tôi chỉ thực hiện "các mô hình được định tuyến" trong PHP / ruby ​​/ go / whatnot. Những người sẽ phân tích yêu cầu, gọi db, trả lại một số json.

Cách tiếp cận này có vẻ thú vị đối với tôi nhưng nó không có bất kỳ tài liệu hay phân tích học thuật quan trọng nào, vì vậy tôi hơi sợ bước nhảy vọt.

Ý tưởng?


Bạn muốn di chuyển đến một cái gì đó như Socketstream . Được thiết kế cho thời gian thực, ứng dụng nặng của khách hàng
Raynos

2
Đừng sợ thay đổi. Cơ sở dữ liệu quan hệ có vị trí của chúng, nhưng nếu dự án của bạn không yêu cầu cơ sở dữ liệu quan hệ, thì đừng sử dụng nó.
beatgammit

Câu trả lời:


1

Nếu không có bất kỳ phân tích học thuật, hãy tự làm. Chỉ cần thử nghiệm trên dự án quy mô nhỏ tiếp theo của bạn và xem bạn thích nó như thế nào. Đọc bài luận của Paul Graham về lý do tại sao anh ấy chọn Lisp cho khởi nghiệp của mình, mặc dù nó không được sử dụng phổ biến. http://www.paulgraham.com/avg.html

Có rất nhiều khung javascript MVC ngoài kia. Nếu bạn muốn xây dựng một ứng dụng javascript chủ yếu, thì hãy làm điều đó.

Chỉ cần xây dựng một API đầy đủ trong đường ray hoặc bất kỳ khuôn khổ nào bạn sử dụng chỉ là một trình bao bọc cho cơ sở dữ liệu và bạn sẽ không phải từ bỏ cơ sở dữ liệu quan hệ của mình. Chỉ cần gọi api như bạn sẽ gọi cơ sở dữ liệu nếu đây là một ứng dụng logic dựa trên máy chủ.

Ngoài ra, nếu bạn xây dựng ứng dụng của mình theo cách này, bạn có thể xây dựng hỗ trợ ngoại tuyến rất dễ dàng.


Tôi sẽ thử điều này cho dự án tiếp theo của tôi. Đối với các khung javascript, bạn đề xuất gì? Người duy nhất tôi đã xem xét như bây giờ là xương sống.
cbrandolino

Xương sống @cbrandolino có vẻ tốt từ khoảng thời gian giới hạn mà tôi đã phải chơi với nó. Bạn có thể muốn kiểm tra sammyjs.org cho một dự án nhỏ hơn.
Seth Archer Brown
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.