时控代码:特定时间为间隔执行函数
时控代码
Task Runner是一个以特定时间为间隔然后执行函数的类。这对进行“拉(pull)”的操作是比较有用的,例如每30秒的间隔刷新内容(Ajax)。TaskMgr对象是TaslRunner的单例,这样使用起
这个Task Runner便很快了。
var stop = false;
var task = {
run: function(){
if(!stop){
alert(new Date());
}else{
runner.stop(task); // 有需要的话这里我们也能停止任务
}
},
interval: 30000 // 每30秒一周期
};
var runner = new Ext.util.TaskRunner();
runner.start(task);
//使用TaskMgr
Ext.TaskMgr.start({
run: function(){
},
interval: 1000
});
DelayedTask就是提供一个快捷的方式达到“缓冲”某个函数执行的目的。调用它之后,那个函数
就会等待某段时间过去以后才会被执行。在此等待的期 间中,如果task方法再被调用,原来的调
用计时就会被取消。因此每一周期内最好只调用task方法一次。譬如在用户是否完成输入的情景,
这方法可适用:
var task = new Ext.util.DelayedTask(function(){
alert(Ext.getDom('myInputField').value.length);
});
// 调用函数之前等待500ms,如果用户在500ms内按下其他的键,这就会等于作废,重新开始500ms的计算。
Ext.get('myInputField').on('keypress', function(){
task.delay(500);
});
注意我们这里是为了指出DelayedTask的用途。登记事件的同时也能对addListener/on的配置项设
置DelayedTask其参数的。