Javascript MVC 框架和服务器端框架
Posted
技术标签:
【中文标题】Javascript MVC 框架和服务器端框架【英文标题】:Javascript MVC Frameworks and Server Side Frameworks 【发布时间】:2011-12-25 23:10:14 【问题描述】:这个问题是关于两个 MVC 框架(在客户端和服务器端)的共存。
一些背景知识:我对 Web 开发相当陌生,但我是一名非常精通的程序员。我最近才学习 javascript 和 Django。我的应用程序的前端非常广泛,因此我决定使用框架。我目前正在阅读可用的框架,并且倾向于使用backbone.js + jquery。
我的问题是我不完全理解像backbone.js这样的MVC框架如何与像Django这样的服务器端框架共存。
根据我对backbone.js的理解,当模型发生变化时,与模型相关的相应视图会自动更新。在这里,我们指的是客户端框架的“视图”,对吗?这样的“视图”会与后端框架的“控制器”通信吗?
可能的目录结构是怎样的?这样的架构不好吗?
这个问题有意义吗?还是我迷路了?
编辑: 增加一些清晰度:我想我的基本问题是:如何在客户端构建复杂的单页 JS Web 应用程序(尤其是如果您使用的是客户端框架)?具体来说,我很好奇如何根据模型对象、UI 组件、任何控制器和处理服务器持久性的对象来清晰地构建应用程序。
【问题讨论】:
【参考方案1】:我可以说 Rails/Backbone,但我无法想象 Django 会有很大不同。
首先,像 Backbone 这样的客户端 MVC 框架不仅仅适用于单页应用程序。您还可以使用它为更传统的应用程序的一个或多个视图添加一些丰富的交互。它们只是在客户端上提供结构和数据抽象。
接下来,这些客户端框架专门设计用于与您的后端 MVC 框架一起使用。 Backbone.js(因为您专门标记了它)模型和集合与 REST 服务一起使用。他们将通过 GET/POST/PUT/DELETE 动词进行对话,并在发出异步请求时最终与后端的控制器进行通信。
对于 Backbone,它使用 JSON 而不是 html。在 Rails 的情况下,这在控制器中很容易处理。如果请求是 HTML 请求,则返回 HTML 视图。如果是 JSON 请求(*.json 或 Content-type),则控制器返回数据的 JSON 表示。我假设在 Django 中和在 Rails 中一样容易让同一个控制器响应多个内容请求(HTML、XML、JSON 等)
【讨论】:
谢谢。这是一个有益的回应。以上是关于Javascript MVC 框架和服务器端框架的主要内容,如果未能解决你的问题,请参考以下文章
Javascript MVC 框架 + jQuery Mobile
主流JavaScript MVC框架性能比较测试:Angular vs Backbone vs Ember