做了三个小demo,本来想做一个类似gmail的界面出来后来突然发现机器上没有office,就干脆做了一个类ppt演示的小玩意。
基于js的应用开发总结起来主要有如下几点:
封装粒度 
常用功能封装为可重复使用的组件,需要合理选择组件封装粒度,粒度过大不便于复用,粒度过小则得不偿失。
代码结构规划 
吸收传统软件开发的思想将代码按功能划分为不同的区块:初始化,事件绑定,事件逻辑处理,外部callback调用
js的面向对象 
简单起见可以使用构造函数(其实就是普通的function)+ prototype定义,虽然看起来不是很优雅不过却是比较直接的解决办法。演示代码中使用了mootools类库,相比jquery来说,这个类库的面向对象特性使用起来个人感觉更好一些,当然也可以使用它自带的class申明方式来编写你自己的class:
复制代码 代码如下:
meta.controls.pager = new class({ 
implements: [events, options], 
options: { 
pageindex :1, // 当前页码, 从1开始 
size : 10, // 每页显示记录数 
maxbuttons : 5,// 显示的分页按钮数量 
showpagesize:true, // 显示分页大小选项. 
sizearray:[10, 25] 
}, 
initialize: function (a) { 
this.setoptions(a); 
this.pageindex = this.options.pageindex; 
this.size = this.options.size; 
this.maxbuttons = this.options.maxbuttons; 
this.itemcount = 0; 
this.pagecount =0 ; 
}, 
...... 
}
这样的方式也是不错的选择,代码逻辑结构清晰一目了然。
单元测试 
通常认为浏览器上的js 应用要做单元测试不好做,原因主要是跟dom关系太紧密,但也不是完全没有办法,比如google的closure就做得不错,使用mock的对象来模拟dom元素并解耦代码逻辑与dom对象操作。 
下面是本次实例的代码,感兴趣的童鞋自行下载。
   
 
   