从this blog post,修改了一下。
...所以这里是一组Ext.util.Functions类的扩展,它提供了创建重复任务的能力以及一些简单的管理。
Ext.apply(Ext.util, {
repeat: function(taskName, fn, millis, zeroDayExecution) {
this.tasks = this.tasks || {};
if (zeroDayExecution)
fn();
return this.tasks[taskName] = window.setInterval(fn, millis);
},
cancelRepeatingTask: function(taskName) {
if (this.tasks) {
var id = this.tasks[taskName];
if (!Ext.isEmpty(id)) {
window.clearInterval(id);
delete this.tasks[taskName];
}
}
},
cancelAllRepeatingTasks: function() {
if (this.tasks)
Object.keys(this.tasks).forEach(function(key) {
this.cancelRepeatingTask(key); },
this);
}
});
调用示例:
Ext.util.repeat('task1', function() { console.log('test'); }, 1000);
是男人,我也试图与setTimout还是同样的问题。 :( – user555 2012-03-09 05:55:56