这周接触 Sinatra, 并搭建了一个简单的 to-do App.
先简单谈谈使用感受, 轻量,是最大的优点,相信有代码洁癖的人会喜欢; 对 RESTful 的支持也很好,ajax 的交互体验一下就上去了。
=======================================
其次介绍下我做的这个小 Demo
我使用了 Sinatra+DataMapper+Sqlite3 作为服务端基础 前端使用了 jQuery+Underscore+Backbone 样式是 bootstrap
三个简单的表结构
用户 | 项目|todo
用户与项目的增删改查是同步的交互模式, todo 是异步的。
>$.ajax({
> url: _model.url,
> type: 'POST',
> beforeSend: function(xhr) {
> xhr.setRequestHeader('X-HTTP-Method-Override', 'PUT');
> },
> success: function(res, status, xhr){
> _model.fetch();
> _self.renderTask(res, status, xhr);
> },
> error: _self.error
>});
通过设定请求头的 X-HTTP-Method-Override 参数,实现 RESTful
截图:
git: [https://github.com/qiaosu/Sinatra-Backbone-TodoApp]
第一次发帖,请多多关照,多提意见。
ps. 小弟 ruby 新手,代码调试真累啊...
谢谢分享,这个项目代码非常清晰,可以拿来给新手做 case study 建议,使用 Sass 重构一下 CSS,使用 CoffeeScript 重构一下 JavaScript.
代码没看,不过 backbone 默认使用 RESTful,如果 model 有 idAttribute,在 save 的时候默认是 put,并不需要自己手动设置的。
backbone 确实对前端提升了很多,但我还是觉得太复杂,特别是在用 multiple routes 的时候。和 rails 结合的时候传输数据还要特别注意,不然非常容易 mass-assignment. 我最近做了一个小程序,rails+backbone, 后端 6 个小时,花在 backbone 上 40 个小时。
@lgn21st 不知道为什么,我对 sass, less 等,和 coffeescript 的接受度还不高. 总感觉要重新学套语法,且在浏览器端调试用的还是原生语言。
@kenshin716 看下 meteor.com 这个框架,也许你会有不同的想法。虽然现在他还是个玩具,但是我觉得这个才是真正前端快速实现代码的体验,我比较看好他。
对比 Backbone 我更喜欢使用 spine,更为简洁,甚至都不用依赖于 Underscore。 Meteor 这个框架我也相当看好 BTW,分享很赞,学习
@xhh 说实话,现在很害怕那些 xxx.js 的 MVC 框架,好像每个月都会冒几个出来,直接造成了选择困难综合症啊。前阵子看了篇文章有个老外居然试了 12 个(还是 10 个)这种 js 的 MVC 框架,最后也是选了 Ember.js,我真佩服他居然这么能折腾。
@PrideChung 所以我比较推荐 backbone 和 knockout(knockback), 毕竟比较活跃,代码质量和文档都上乘,遇到问题也能找到地方问。用熟了可以自己尝试写,就是一些中间层,然后再可以挑选一些框架,看哪些的代码和自己的思路比较近似。
更新了个版本,现在可以提供在线预览了哦 http://todo.decimage.com 如果懒得注册,可以用测试账号:[email protected]/111111