pjax还是客户端MVC?

时间:2012-09-09 23:55:58

标签: model-view-controller architecture backbone.js pjax

我必须开始一个新项目,一个包含大量表单和屏幕的webapp,我真的不知道哪种技术最合适。该应用程序是一个类似ERP的应用程序,动画很少,形式很多。目标是尽可能减少重新加载和等待时间,它必须尽可能接近普通的桌面应用程序(很多工作看起来像一个了不起的VB6应用程序: - )

一方面,我们有客户端MVC(骨干)。让所有代码在客户端上运行很酷,但在我看来这意味着从服务器(PHP + Fuel)重复大量代码(例如所有模型定义)。当然,一旦加载所有信息任务,如分页或网格工作没有任何延迟,但它也存在一些同步问题(其他用户可以更改数据,我必须手动使客户端上的数据无效)。

另一方面,我们有pjax。我们的想法是在服务器上制作所有模板等,只需实现一个逻辑来返回没有pjax请求框架的页面或新请求的完整页面。没有代码重复,非常简单的客户端。

我已经阅读了故事from basecampfrom twitter,这一点对我来说都很有意义。您无法在访客计算机上进行中继(功能,性能......)

我越是想到它的模式我喜欢pjax而不是MVC,但也许我错过了一些东西。与客户端MVC相比,哪些是MVC优于pjax或pjax的优势?

非常感谢

1 个答案:

答案 0 :(得分:3)

Backbone.js非常适合那些从未真正回发过的重型单页网页应用程序,但却有大量的ajaxian事情,相互依赖的级联下拉菜单等。它有一个非常好的事件和集合API。如果您有充足的客户端javascript,它可以是一种有用的组织方式。从某种意义上说它是默认的,它希望你的服务器端架构在默认情况下是RESTful的,你必须努力将它用于非RESTful API。

我正在开发的项目也是一个ERP网络应用程序,在服务器端使用asp.net MVC。我已经了解到Backbone(带有把手作为模板系统)和.net mvc真的不能很好地一起玩。如果你去Backbone,你真的必须全力以赴(控制器方法提供json,就是这样)。在这个应用程序的页面中,或多或少具有某些形式的“普通”网页,Backbone是错误的选择。

我第一次使用Google搜索pjax,所以我基本上只是阅读了页面顶部的简短描述,但我怀疑这可能是你的方案的方法,与Keep It Simple Silly保持一致原理