Javascript MVC框架和服务器端框架

时间:2011-11-10 08:10:32

标签: django model-view-controller architecture frameworks backbone.js

这个问题是关于两个MVC框架的共同消极(在客户端和服务器端)。

一些背景:我对网络开发相当陌生,但我是一名非常精通的程序员。我最近才学会了javascript和Django。我的应用程序的前端非常Javascript,因此我决定使用一个框架。我目前正在阅读可用的框架,我倾向于backbone.js + jquery。

我的问题是我不完全理解像backbone.js这样的MVC框架如何与Django等服务器端框架共存。

根据我对backbone.js的理解,当模型发生变化时,与模型相关的相应视图会自动更新。在这里,我们指的是客户端框架的“观点”对吗?这样的“视图”会与后端框架的“控制器”进行通信吗?

可能的目录结构如何?这样的架构难道吗?

这个问题有意义吗?还是我输了?

编辑:为了增加一些清晰度:我想我的基本问题是:如何在客户端构建复杂的单页面JS Web应用程序(如果您正在使用客户端框架,那么也是如此) )?具体来说,我很好奇如何根据模型对象,UI组件,任何控制器和处理服务器持久性的对象来干净地构建应用程序。

1 个答案:

答案 0 :(得分:8)

我可以用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等)