Ext Core提供了TaskRunner、TaskMgr和DelayedTask三个类来执行定时任务,其中TaskMgr是TaskRunner的一个静态实例。
TaskRunner类的作用是在设置的时间间隔内定时执行指定任务,其使用方法请看下面代码。
var stop = false; //任务定义 var task = { run:function(){ if(!stop){ //执行处理 console.log(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类提供一种缓冲机制。正常情况下,指定的任务会一直等待到指定的时间后才会执行。如果在这期间,延时机制再次触发,则之前的任务将取消,继续等待到指定的时间后才会执行新任务。该功能主要应用在检测用户输入状态。其使用方法请看下面代码。
var task = new Ext.util.DelayedTak(function(){ console.log(Ext.getDom('myInputField').value.length); }); Ext.get('myInputField').on('keypress',function(){ task.delay(500); });