大量使用Ajax的Web应用程序的模式


12

到目前为止,我一直是开发Web应用程序的MVC模式的忠实拥护者。对于网络,我主要使用PHP(使用Kohana和CodeIgniter框架)和Ruby(RoR)开发。

随着我的应用程序在Ajax方面变得越来越繁重(单页应用程序等),我注意到我不禁出卖了MVC的最基本概念:Java语言正在做大部分工作;调用控制器只是为了请求视图或更多js / json代码似乎是错误的。

在努力将所有路由作业保留在控制器中之后,现在我从根本上将其分配给控制器和Javascript(即,从框架的PoV来看,是视图的一部分)。当请求json时,MVC的转换看起来更加明显:执行请求的js代码控制器;框架的控制器仅充当模型数据的代理-实际上是我要的。

那么,我应该研究什么?

我当时在考虑使用纯JavaScript应用程序,例如,使用ribs.js和基于文档的JSON吐出数据库(couchDB)作为后端,但是我喜欢我的关系数据库。

另一个选择如下:我只是在PHP / ruby​​ / go / whatnot中创建“路由模型”。这些将分析请求,调用数据库,并返回一些json。

这种方法对我来说似乎很有趣,但是它没有任何实质性的文档或学术分析,因此我有点害怕这种飞跃。

有想法吗?


您想迁移到Socketstream之类的东西。专为实时的,客户
密集型

2
不要害怕改变。关系数据库占有一席之地,但是如果您的项目不要求使用关系数据库,则不要使用它。
beatgammit 2011年

Answers:


1

如果没有任何学术分析,请自己进行。只需在您的下一个小型项目上进行试验,然后看您如何看待它。阅读Paul Graham的文章,他为何选择Lisp进行创业,即使这种方式并不常用。http://www.paulgraham.com/avg.html

有很多MVC javascript框架。如果您要构建主要是javascript应用程序,请执行此操作。

只需在Rails或您使用的任何框架中构建一个宁静的API,而这仅仅是数据库的包装器,并且您不必放弃关系数据库。只需像调用数据库一样调用api(如果这是基于服务器的逻辑应用程序)。

此外,如果您以此方式构建应用,则可以非常轻松地构建脱机支持。


我将在下一个项目中尝试使用。至于javascript框架,您有何建议?我目前唯一研究的就是骨干网。
cbrandolino

@cbrandolino主干在我不得不玩的有限时间内看起来不错。您可能需要检查sammyjs.org以查找较小的项目。
塞斯·阿彻·布朗
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.