【问题标题】:JavaScript Web ApplicationJavaScript 网络应用程序
【发布时间】:2012-12-14 03:03:46
【问题描述】:

我使用 MVC 框架使用 Ruby on Rails 构建了一个测验应用程序。我想用纯 JavaScript 做基本相同的事情,并用 jQuery 为移动设备和特殊效果添加更多功能,因为 jQuery 就是这样很棒。

我在TodoMVC 之类的网站上查看了有关框架的比较,但我不知道这些框架的功能。为什么他们在 MVC 定义中使用 Collection 而不是 Controller?在我看来,这些只是客户端框架。我会使用 Backbone.js 之类的东西进行客户端工作,而 Node.js 用于服务器端吗?

我只是不确定如何使用纯 JavaScript 函数进行开发。我需要创建一个数据库来存储测验和用户信息,并且能够在查看大多数页面时访问该数据库,所以我觉得 MVC 框架是最好的方法。

关于从哪里开始有什么建议吗?

【问题讨论】:

    标签: javascript node.js backbone.js web


    【解决方案1】:

    哇,这是一篇相当宽泛的帖子;让我们一次一件地处理

    为什么他们在 MVC 定义中使用 Collection 而不是 Controller?

    确切的答案因库而异,但一个简单的答案是大多数 Javascript 应用程序中的控制器实际上并不需要任何框架;它们可以是原始的 Javascript 并且工作得很好,因为它们通常不是很复杂。

    此外,您可能认为是“控制器”的部分通常是单独提供的。主要的例子是 Backbone 的 Router 对象:它类似于 Rails 中的隐含路由(和 routes.rb),或 Django 中的 urls.py。正如那些框架不认为路由是“控制器”的一部分一样,Backbone(和类似的框架)将路由作为一个单独的部分提供......即使它可能属于 MVC 中的 C 语言。

    同样,jQuery 提供的大部分 DOM 操作功能通常属于 MVC 应用程序的控制器,因此从某种意义上说,jQuery 可以帮助您构建控制器; Backbone.Model 帮助您构建模型的方式并不明确。

    我会使用 Backbone.js 之类的东西进行客户端工作,而 Node.js 用于服务器端吗?

    那真的是苹果和橘子;用服务器端术语来说,Backbone 更像 Rails,而 Node 更像 Ruby(或 Mongrel 之类的)。所以是的,一个是客户端,另一个是服务器端,但差异远不止于此。

    关于从哪里开始有什么建议吗?

    选择一个框架并亲自动手!说真的,你可以花几个小时阅读不同框架的评论,但最终还是比开始时更接近于做出决定(我是根据经验说话)。但是,如果您只是选择一个并尝试它,您可能会发现它要么与您“凝胶”,要么不是很快。

    就个人而言,我建议从 Backbone 开始,因为 A) 它现在非常流行,并且 B) 我有偏见:我每天都使用它并且喜欢它。此外,它可能很适合您,因为它是由 CoffeeScript 人创建的(CoffeeScript 是他试图使 Javascript 更像 Ruby)。不过,Ember.js 这几天也很流行,Hector 提到了 ExpressJS,我对此一无所知,但可能很酷。

    但重点是,选择一个,打个招呼,或者更复杂一点的东西,比如介绍性教程(Backbone 有一个围绕 To Do 应用程序)。用它编写几个小时的代码会比我(或 Stack Overflow 上的其他任何人)更能告诉你它是否适合你。

    【讨论】:

    • P.S.只是为了适当地设定您的期望,请记住,没有 Javascript 框架(至少我见过)像 Rails 那样“握住您的手”。您对此无能为力,但不要指望您选择的任何框架都可以使您免于学习 Javascript ;-)
    • 感谢您的精彩解释!我当时有点想法,我只需要证实我的怀疑。我很高兴能学习我能学到的所有 JavaScript,所以我的双手是非常隐含的 =)
    【解决方案2】:

    如果您正在寻找类似 JavaScript MVC 的框架,请查看 Express.js http://expressjs.com

    Express.js 更像 Sinatra 而不是 Rails,但它会为您在服务器端打下良好的基础。

    【讨论】:

      【解决方案3】:

      我肯定会看Google Closure。我已经开始在个人宠物项目中将它与 LimeJs 一起使用,并且真的被 compiler 和它的模块化设计所吸引。

      真的不是 MVC,但由于 JavaScript 应该更多地以异步方式来考虑,所以我倾向于将其更多地视为事件驱动,而不是简单的请求-管道-响应方式。

      所以,Closure Library 和 jQuery / jQuery UI(都在 Google API)用于客户端,ExpressJs 用于服务器端。另外,看看这个framework comparison chart,你可能会觉得很有趣。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-02-01
        • 2016-01-24
        • 2015-09-19
        • 2020-09-06
        • 2016-03-07
        • 2017-05-22
        • 1970-01-01
        相关资源
        最近更新 更多