JS 的应用开发初探(mootools)

  做了三个小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对象操作。

  下面是本次实例的代码,感兴趣的童鞋自行下载