客户端MVC而不是服务器端MVC

时间:2013-06-18 13:22:53

标签: ruby-on-rails model-view-controller backbone.js ember.js

不是使用像Ruby,Python,PHP这样的服务器端MVC来构建非常复杂的网站,为什么我们不应该将我们的网站分成多个模块,并使用客户端MVC(如backboneJS,EmberJS)构建每个模块。在这种情况下,我们将使用PHP / Ruby单独创建Web服务,它仅提供数据。

现在每个模块都充当了小型网络应用。如果我们相互链接,它们看起来就像一个复杂的网络应用程序。

我访问了许多网站(如github,groupon,stackoverflow等...),这些方法可以构建或采用它们。但我没有看到这种方法。这种方法在这类网站上有什么问题吗?

4 个答案:

答案 0 :(得分:1)

想要发表评论

我觉得棘手的部分确实是你提到的那一点

  

如果我们相互联系,它们将完全看起来像一个复杂的网络应用程序。

因为每个MVC框架都使用不同的方法来解决您在现代网络应用中遇到的常见问题,例如 路由 数据绑定 应用程序状态 呈现 DOM元素,所以我认为你最终会拥有多个框架执行大量重叠的任务,从而迫使您停用或禁用一个或另一个框架的某些内置功能,使您的 frankenstein -app :)非常难以维护。

一个很好的例子是jQuery-mobile& ember.js,都有 路由 系统,jQuery使用DOM来保存 状态 ember.js拥有它状态完全在 javascript 中,速度要快得多。我在使用jQuery-mobile& amp;的项目中遇到了类似的问题。 ember.js这迫使我决定使用其中一个路由系统,我使用了ember和去激活的jQuery,然后只需要jQuery-mobile上的一堆定制的移动外观组件。最后,我删除了仅使用ember.js的jQuery-mobile和移动式应用程序的CSS。

如果不是因为具体要求,恕我直言,你最好的选择就是 一个 非常好,灵活和自以为是的框架(我个人更喜欢 ember。 js )并用你唯一的选择创建你提到的模块。

希望它有所帮助。

答案 1 :(得分:1)

截至目前,我们可以说大多数应用程序都被迫在其UI / UX中付出更多努力,因此服务器端的依赖性正在变得非常低。

我亲自使用骨干作为我的最新作品,这很棒。从一开始就可以注意到整个应用程序的速度。我过去3年一直在使用PHP,我绝对可以保证骨干和其他MV *框架更好。

结合CSS框架(如bootstrap),backbone可以是一个非常有条理和优雅的应用程序。

所有人都说,了解模型,视图,路由器,收藏品可能会令人头痛。这是一个具有巨大可能性并且才刚刚起步的东西。

我根据很多教程编写了一个教程,并在http://goo.gl/nJumC发布。

还有很多视频教程。

唯一的要求是,应该对javascript和jquery方法和函数有很好的了解。初学者对这些知识的了解只会使你学习骨干的任务变得困难。

答案 2 :(得分:1)

哦,是的。我得到了答案。

  

来自google群组:   我认为其中一个原因是javascriptless用户代理 - 即搜索   启用NoScript的引擎抓取工具和用户。

我希望,这些都是网站仍在使用服务器端MVC的真正问题。

当网站不了解目标受众时,他们无法预测它在客户端的运行情况。所以他们应该依靠服务器来构建他们的大部分内容。

并且认为,如果使用客户端MVC设计stackoverflow来构建更多内容,则没有人无法使用谷歌搜索来访问stackoverflow帖子。

  

来自“搜索引擎优化”部分下的wikipedia
  由于在所有流行的爬虫上缺乏JavaScript执行   网络搜索引擎,SEO历史上一直存在问题   面向公众的网站希望采用SPA模式。

答案 3 :(得分:0)

我认为这是我们现在的转变;我不是很确定你,但我注意到了更多客户端MVC网站。无论如何,你也可以看一下....

http://backbonejs.org/#examples

在我看来,除了学习曲线之外,使用JSON / REST使用Client MVC和Web API进行开发非常简洁