2011-12-08 68 views
4

我决定在我的网站上使用MVC模式。所以,现在我在我的网站上使用Backbone.js框架。 我的网站上的所有操作都是ajaxy,所以服务器只从db获取数据,并将数据保存到db。我应该在客户端和服务器上使用MVC吗?

我是否也需要在服务器端使用MVC?这很复杂,不是吗?

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

UPD:据我所知,我应该在服务器端使用Models。但在服务器端Views是什么 - 如果我使用JavaScript呈现所有信息?

所以,它是一个很好的模式,即服务器端仅适用于原始数据 - models - 它总是返回json,与HTML的标记和其他东西有关Views没有关系?

+0

听起来像是一个机会来实现[真正的MVC实际上](http://stackoverflow.com/questions/1549857/simple-php-mvc-framework/1549970#1549970)。 Model = PHP。视图=骨干。控制器= AJAX。或者有点。 – mario

回答

6

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

关键在于确保您很好地组织您的后端代码,否则最终会出现单片和/或难以维护的代码库。

编辑回应OP的编辑:
服务器端的意见将包含您的HTML和可能会或可能不会使对服务器的请求任何JavaScript。这假定您实际上使用PHP来构建用户导航到的页面。

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

+0

我已更新我的帖子,解释了我的问题 –

+0

更新了我的答案。 – simshaun

2

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

今天正在构建的许多(大多数?)较大的Web应用程序正在向客户端和服务器端应用程序代码使用MVC框架。对于许多大型应用程序,特别是请求/响应服务器应用程序和事件驱动的浏览器应用程序来说,这是一个很好的模式。

+0

我已更新我的帖子,解释了我的问题 –

+0

您的各种JSON文档==视图......更不用说身份验证和客户端代码的初始加载了。 –

3

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

相关问题