我应该在客户端和服务器上使用MVC吗?

时间:2011-12-08 00:31:33

标签: php model-view-controller backbone.js

我决定在我的网站上使用MVC Pattern。所以,现在我在我的网站上使用Backbone.js框架。 我站点上的所有操作都是ajaxy,因此服务器只从db获取数据,并将数据保存到db。

我是否也需要在服务器端使用MVC?它使所有人复杂化,不是吗?

或者我可以在客户端使用MVC,并且有简单的服务器api,只能获取/保存数据并使一些小型服务器工作?

UPD:我知道我应该在服务器端使用Models。但是服务器端的Views是什么 - 如果我用javascript渲染所有信息?

那么,这是一个好的模式,服务器端只能处理原始数据 - models - 它总是返回json,并且与html-markup和其他与{{{}相关的事情没有关系。 1}}?

3 个答案:

答案 0 :(得分:6)

不,您不需要在服务器端使用它,但它帮助组织/分离应用程序和业务逻辑。根据您的应用程序的规模,这可能在将来有很大帮助。

关键是确保您很好地组织后端代码,否则您将最终得到一个单一的和/或难以维护的代码库。

编辑以响应OP的编辑:
服务器端视图将包含您的HTML以及可能会或可能不会向服务器发出请求的任何JavaScript。这假设您实际上使用PHP来构建用户导航到的页面。

如果你有一个使用AJAX请求构建自己的静态html页面,那么可能根本不需要使用服务器端视图。您的控制器很可能会输出JSON数据。如果是这种情况,它不会使模型和控制器变得不那么有用。

答案 1 :(得分:3)

Backbone.js通过RESTful JSON接口连接您的应用程序。老实说,我发现它与MVC框架结合得很好。如果您构建RESTful API,则可以让服务器非常轻松地管理CRUD更新。您负责的所有服务器端代码都是保存并将JSON对象发送回Backbone.js。然后让你的大部分逻辑和魔法发生在Backbone.js框架内。

答案 2 :(得分:2)

如果您正在使用任何主要的PHP框架(CakePHP,Code Igniter,Symfony等),那么您已经使用了MVC。如果您的服务器端逻辑比一些非常简单的脚本更复杂,那么使用其中一个列出的框架,在服务器和客户端上使用MVC。

目前正在构建的许多(大多数?)更大的Web应用程序正在朝着客户端和服务器端应用程序代码使用MVC框架发展。这是分离许多大型应用程序问题的理想模式,尤其是请求/响应服务器应用程序和事件驱动的浏览器应用程序。