新浪微博的前端Jobs模块

今天无聊,翻了下新浪微博的前端代码,找到了他们的Jobs模块的实现,加了些注释,然后分析整理了一下。先看代码:

 

 

 

 

可以看出其逻辑非常简单,Jobs类里面有一个_registedJobTable,所有的Job需要调用$registJob方法将自己的回调函数传进 去,之后这个Job就算定义好了。对于每个页面,所需要的Job组合可能是不一样的,这时候只需要将自己需要的Job一个一个add进去,再调用 start方法就可以了。下面这段代码是新浪的首页调用Job的代码。

 

从Job命名上基本上就可以猜出来是干啥的了。
所以,新浪的Jobs功能实际上是一种功能的模块化定义,将页面的每个小功能模块定义成Job,之后,每个页面根据自己的需要,把Jobs拼装起来,就完 成了整个页面的功能。

应该说,新浪的整个Jobs功能和网易微博的Task概念是基本一样的。不过我们在具体实现上稍有不同。我们是实现了一个Task类,每个具体的Task 在 new Task时,传入当前task的名字和回调函数,并且调用其add方法将自己加入了TaskManager中。例如:
    var task = new Task('myTask', function() { ...}).add();
这样在最后,调用TaskManager的run方法,就可以把Task一个一个跑起来了。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值