繁体   English   中英

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

[英]Should I use MVC both on client and server?

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

我是否也需要在服务器端使用MVC? 这让所有人变得复杂,不是吗?

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

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

那么,它是一个好的模式,服务器端只适用于原始数据 - models - 它总是返回json ,并且与html-markup和与Views相关的其他东西没有关系?

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

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM