JavaScript Web应用程序
JavaScript Web Application
我使用MVC框架,用Ruby on Rails构建了一个问答应用程序。我想用纯JavaScript做基本相同的事情,并为移动设备和特殊效果添加更多的jQuery功能,因为jQuery就像那样棒极了。
我已经在像TodoMVC这样的网站上寻找框架的比较,但我对这些框架的功能一无所知。为什么他们在MVC定义中使用Collection
而不是Controller
?在我看来,这些只是客户端框架。我会使用像Backbone.js的客户端工作和Node.js的服务器端吗?
我只是不确定如何开发纯JavaScript函数。我需要创建一个数据库来存储测验和用户信息,并且在查看大多数页面时能够访问该数据库,所以我觉得MVC框架是最好的方法。
关于从哪里开始有什么建议吗?哇,这是一个相当广泛的帖子;让我们一步一个来
为什么他们使用集合而不是控制器在他们的MVC定义?
确切的答案因库而异,但一个简单的答案是,大多数Javascript应用程序中的控制器实际上不需要任何框架;它们可以是原始的Javascript,并且工作得很好,因为它们通常不是很复杂。
此外,您可能认为是"控制器"的部分通常是单独提供的。最主要的例子是Backbone的Router对象:它类似于Rails中的隐含路由(和routes.rb),或者Django中的urls.py。就像那些框架不认为路由是"控制器"的一部分一样,主干(和类似的框架)将路由作为一个单独的部分提供…即使它可能属于MVC中的C。
同样,jQuery提供的很多DOM操作功能通常属于MVC应用程序的控制器,所以在某种意义上,jQuery帮助你构建你的控制器;它只是不明确的方式骨干。Model帮助您构建模型。我会使用像Backbone.js的客户端工作和Node.js的服务器端?
这简直是天壤之别;用服务器端术语来说,Backbone更像Rails, Node更像Ruby(或Mongrel或其他东西)。所以,一个是客户端,另一个是服务器端,但差异远不止于此。
关于从哪里开始有什么建议吗?
选择一个框架并动手吧!说真的,你可能会花几个小时阅读不同框架的评论,但最终还是无法做出决定(我是从经验出发的)。但如果你只是选择一种并尝试,你可能会发现它要么与你"凝胶",要么不是很快。
就我个人而言,我建议从Backbone开始,因为A)它最近很流行,B)我有偏见:我每天都在使用它,而且很喜欢它。此外,它可能很适合你,因为它是由CoffeeScript家伙创建的(CoffeeScript是他试图使Javascript更像ruby的)。不过Ember.js最近也很流行,Hector提到了ExpressJS,我对它一无所知,但可能很酷。
但关键是,选择一个,做一个hello world,或者一些更复杂的东西,比如介绍性教程(Backbone有一个围绕To do应用程序的教程)。用它写几个小时的代码会比我(或者Stack Overflow上的任何人)告诉你它是否适合你更多。如果你正在寻找一个类似JavaScript mvc的框架,可以看看Express.js http://expressjs.com
Express.js更像Sinatra而不是Rails,但是它会给你一个良好的服务器端基础。
我肯定会考虑Google Closure。我已经开始在一个个人宠物项目中与LimeJs一起使用它,并且真的被它的编译器和它的模块化设计所吸引。
它不是真正的 MVC,但由于JavaScript应该更多地以异步方式考虑,我倾向于将其视为事件驱动而不是简单的请求-管道-响应方式。
所以,闭包库和jQuery/jQuery UI(都在Google API上)用于客户端,ExpressJs用于服务器端。另外,看一下这个框架比较图,您可能会觉得很有趣。
- 在Web应用程序中使用Highcharts javascript
- 将下载链接从web浏览器传递给第三方应用程序
- 在web应用程序中的新搜索中重新加载搜索结果(不带jQuery)
- Web应用程序,将成员状态更新为其他成员
- 同一文本框中的验证程序CPF e CNPJ(ASP.NET web应用程序)
- web浏览器中的离线应用程序存储数据并在之后上传
- 使用Ember的Web应用程序架构.动画逻辑应该放在哪里
- 如何使用默认的网络摄像头拍摄照片并将其保存在我的c#.net web应用程序中
- c#web应用程序中的条形码打印
- 使用javascript为web应用程序自定义键盘快捷键
- 使用angularjs和node.js时的Web应用程序文件夹结构
- PhpWindows 8.1版本上的Javascript web应用程序
- 是否有任何开源web应用程序具有良好的QUnit(或JSUnit)测试用例
- Project和作为web应用程序发布的多个doGet()脚本文件——需要澄清
- 无法在Windows 10 Cordova应用程序中从Web视图进行ajax调用
- 如何获取使用我们的脚本或web应用程序的网站名称
- 没有框架/DLL的VS Web应用程序项目
- 正确传输和保护用户'web应用程序的密码
- 检查Progressive web应用程序中的网络更改
- 如何在应用程序>Web浏览器控件中使用Google Maps API v3 ClientID