Backbone.js 实践

现代浏览器的JavaScript运行效率越来越高, 所以人们也开始把越来越多的代码放到客户端来实现. 既能提高交互性, 又可以减轻服务器端的压力, 没理由不试一试. 另外, 对于手机和平板来说, 现在移动操作系统也各种各样, 如果要为每个都实现一个原生的应用, 肯定要花大力气. 正是由于这样, 37Signals才用Web App的形式来实现移动版本的Basecamp.

但就像早期人们写web应用时那样, 在服务器端只要简单的处理请求返回请求, 把代码扔在几个文件里直接写就得了. 渐渐的, 服务器端的程序逻辑越来越复杂, 所以诞生了各种Web框架来结构化服务器端程序的实现. 而现在客户端的JavaScript应用也开始面临同样的问题–不再仅仅是用来显示几个特效, 做一些小trick–客户端的代码也有了更多的逻辑加入. 于是, 就诞生了客户端JavaScript的类MVC框架, 比如SproutCore, Backbone.js等等.

我对SproutCore了解不多, 听说Apple的me.com有用它来实现, 后来创造它的那个开发者离开了Apple, 然后创建了公司, 并将它开源了. 现在它的代码也放在Github上, 主导Rails 3开发的”大胡子”Katz现在也在将精力放在了它上面. 它提供了很多UI元素, 为你决定好了HTML文档的结构, 并且核心库比较庞大. 因此我选择了更加轻量级的Backbone.js, 它最小化压缩后只有不过4k.

作為实践, 我就把自己个人网站的前端用Backbone.js重新实现了一遍. 原本以为用个一两天就能搞定的, 结果用了三四天. 中间遇到的问题有点多. 初学者就是麻烦. 其实, 在此之前, 我已经用Backbone+CouchDB实现过一遍了, 代码放在了这里, 但CouchDB那个版本没有服务器端的实现, 搜索引擎不友好, 所以我又决定在这个Rails App的基础上来折腾一下. 服务器端基本上不用做什么改动, 只要添加几个JSON的format就行.

重点当然是客户端的代码啦, 有兴趣的就自己找代码看吧, 在这里. 因为没有给JavaScript写测试的经验, 所以测试代码是没有地!!! 要想围观就看这个个站的首页去吧…

0 Comment to Backbone.js 实践

Leave Your Comment