ExtJs 中使用 TaskRunner 和 DelayedTask 如何传参数到 run() 方法
2009-09-24 00:00:00 来源:WEB开发网01.Ext.onReady(function(){
02. var runner = new Ext.util.TaskRunner();
03. runner.start({ //任务被调用的方法
04. run: function(){ //run 方法原型不变,实际可以去遍历这个 arguments 参数数组
05. alert('run() 方法被执行. 传入参数个数:' + arguments.length + ", 分别是:"
06. + arguments[0] +"," + arguments[1] +"," + arguments[2]);
07. return false; //不返回 false,run() 方法会被永无止境的调用
08. },
09. args:[100,200,300],
10. interval: 1000, //一秒执行一次,本例中 run() 只在 1 秒后调用一次
11. repeat: 2 //重复执行 2 次, 这个参数已不再启作用了
12. });
13.});
如果不在 run() 方法中返回 false,你会发现会不停的弹出窗口,有了 args 属性时,repeat 根本不管用。原因还得从 TaskMgr 源代码中去发现:
01.if(t.interval <= itime){
02. var rt = t.run.apply(t.scope || t, t.args || [++t.taskRunCount]);
03. t.taskRunTime = now;
04. if(rt === false || t.taskRunCount === t.repeat){
05. removeTask(t);
06. return;
07. }
08.}
09.if(t.duration && t.duration <= (now - t.taskStartTime)){
10. removeTask(t);
11.}
Tags:ExtJs 使用 TaskRunner
编辑录入:爽爽 [复制链接] [打 印]更多精彩
赞助商链接