javascript框架--brook
来源:广州中睿信息技术有限公司官网
发布时间:2012/10/21 23:25:16 编辑:editor 阅读 261
brookbrook是一个针对大规模web开发的Javascript框架,而不是一个工具集。brook引用了UNIX下的pipe概念,轻松把所有的处理都串联起来以共同完成任务。前一个处理的输出作为后

brook

brook是一个针对大规模web开发的Javascript框架,而不是一个工具集。

brook引用了UNIX下的pipe概念,轻松把所有的处理都串联起来以共同完成任务。前一个处理的输出作为后一个处理的输入来完成参数的传递。通过brook你可以以MVC的方式来写你的javascript程序。

http://hirokidaichi.github.com/brook/

brook框架使用namespace库用于模块的组织。

这里再次用例子说明一下namespace的使用方法:

    要想理解brook框架,需要理解brook的几个核心概念。

promise

简单来说,promise就是封装过的函数,它就是负责把值传给下一个promise。就好比接力赛时候,把接力棒(value)传给下一个成员(promise)。这样就可以可以让非同步的处理能够按照类似同步处理的顺序来编程。

那我们来看看promise能做什么。比如有这样的要求

1:等一秒

2:输出moge

3:等两秒

4:输出muga

 

不用promise的时候:

    
  这样的代码处理顺序不好理解。如果改用promise的话:
    
  其中bind函数可以接受多个参数,也可以写成这样:
  ns.wait(1000).bind(p1, ns.wait(1000), p2).run();

 

promise的使用方法:

1:等待几秒可以使用brook.util下的wait方法

2:promise之间“棒的交接”是通过bind方法实现的,也就是UNIX下的PIPE功能。

3:最后需要执行run()方法

channel

channel顾名思义就是频道,管道的意思。在brook里它表示promise的集合。可以把多个promise存放到一个channel里,然后一起执行。

channel的使用方法:

1:observer:把promise追加到channel中

2:sendChannel:确定channel

3:最后通过run来执行channel里所有promise

 

model

model是对channel进行包装而成的。在model里可以定义带有名字的channel,这些channel都是一个个的method。

这个组件可以明确MVC中的M和V,即模块和视图。它可以写出这样的处理,model的method执行之后,它的结果传到一个或者多个view(promise)。这就是观察者模式。

model的使用方法:

1:ns.createModel():生成model

2:model.addMethod():定义method名和相应的处理promise

3:ns.from():定义model的某个method执行完之后的处理

4:model.notify():执行model的method

 

widget

widget负责把html和命名空间的模块关联起来。看一个简单的例子。

首先定义一个sample.widget的namespace。

    
  下面就是关于sample.widget的html页面。
    
  这段代码会把data-widget-namespace指定为sample.widget的div内容全部置换成hello world!


run()和subscribe()的区别

promise执行的时候需要使用run()方法。一个promise链处理完之后需要执行回调函数的时候不使用run,使用subscribe。

     

brook.util

这个模块里面定义很多有用的方法。

mapper:定义装饰处理

 

filter:过滤器

   

scatter:分散器,value里面的值依次调用下一个promise

    takeBy:从value里面一次取n个调用下一个promise
    wait:等待n毫秒

 

cond:有条件执行promise,第一个参数是过滤器,第二个参数是promise。第一个参数为true的时候执行第二个参数的promise。

match:根据value的值来决定执行哪一个promise。
   

from:为promise链传递初始参数,也可以用run来传递。

 

最后还可以通过github首页的例子来体会,brook是怎么实现MVC模式的。

 

联系我们CONTACT 扫一扫
愿景:成为最专业的软件研发服务领航者
中睿信息技术有限公司 广州•深圳 Tel:020-38931912 务实 Pragmatic
广州:广州市天河区翰景路1号金星大厦18层中睿信息 Fax:020-38931912 专业 Professional
深圳:深圳市福田区车公庙有色金属大厦509~510 Tel:0755-25855012 诚信 Integrity
所有权声明:PMI, PMP, Project Management Professional, PMI-ACP, PMI-PBA和PMBOK是项目管理协会(Project Management Institute, Inc.)的注册标志。
版权所有:广州中睿信息技术有限公司 粤ICP备13082838号-2