Ext.util.DelayedTask类从名字上就可以看出它是延迟任务的执行。即指定时间之后执行任务。
整个类如下:
Ext.util.DelayedTask = function(fn, scope, args){
var me = this,
id,
call = function(){
clearInterval(id);
id = null;
fn.apply(scope, args || []);
};
me.delay = function(delay, newFn, newScope, newArgs){
me.cancel();
fn = newFn || fn;
scope = newScope || scope;
args = newArgs || args;
id = setInterval(call, delay);
};
me.cancel = function(){
if(id){
clearInterval(id);
id = null;
}
};
};
总体上看写类方式是采用 构造函数方式
(将字段,方法都挂在内部this上)
当然这里this上没挂字段,只挂了两个方法delay和cancel。这里巧妙的使用setInterval和clearInterval而不是setTimeout。
DelayedTask 有三个参数,fn是需延迟执行的函数(必选,但可在delay时指定),scope是该函数执行时的上下文(可选),args是传递给该函数的参数(可选)。
delay方法的后三参数与DelayedTask构造器相同,第一个参数是需要延迟的时间数字,为毫秒。示例如下:
function fn(){
alert('test');
}
var task = new Ext.util.DelayedTask(fn);
task.delay(2000);
即在2秒后执行fn。这是最简单的示例,复杂的可以指定fn的执行上下文,还可以传参数。
这个类在 Ext.util.Event 类中私有函数createBuffered,createDelayed用到。而这两个函数在Ext.util.Event的createListener方法中用到。
下一篇的 Ext.util.TaskRunner 将提供更为强大,多任务定时管理功能。
分享到:
相关推荐
在一些情况下,如果项目对加载速度有较高要求,可以先加载`ext-base.js`,然后再按需加载其他组件,以实现按需加载(延迟加载)来减少页面的初始加载时间。 甘特图是一种图形表示项目计划的方法,通常用水平条形图...
最后,"EXT核心API详解(七)-Ext.KeyNav KeyMap JSON Format DelayedTask TaskRunner TextMetrics XTemplate.txt"涉及键盘导航(KeyNav)、键映射(KeyMap)、JSON格式化、延迟任务(DelayedTask)、任务调度器...
Ext.KeyNav KeyMap JSON Format DelayedTask TaskRunner TextMetrics XTemplate.txt"涵盖了键盘导航(KeyNav)、键映射(KeyMap)等高级交互功能,JSON格式处理,延迟任务(DelayedTask)和任务调度(TaskRunner)以...
`DelayedTask` 用于延迟执行一次函数,而 `TaskRunner` 则可以周期性地执行任务,更适合于轮询场景。 1. **使用 `Ext.util.TaskRunner`** - 创建 `TaskRunner` 实例:`var taskRunner = new Ext.util.TaskRunner()...
2. **更快的挂载和卸载时间**:EXT4引入了延迟分配(Delayed Allocation)策略,这使得文件写入更高效,减少了挂载和卸载的时间。 3. **更快的文件创建和删除**:EXT4支持大块分配(Huge File Allocation),允许一...
- 利用`Ext.util.DelayedTask`或`setTimeout`等函数,延迟非关键任务的执行。 通过上述知识点,我们可以理解EXT JS中延时加载的工作原理,以及如何通过`BudgetWeaveModel.js`这样的模型文件来实现这一功能。在实际...
**EXT4.0 API详解** EXT4,全称第四代扩展文件系统(Fourth-Extended File System),是Linux操作系统中广泛使用的日志...通过这些API,开发者可以高效地构建和维护EXT4文件系统,实现各种复杂的文件操作和管理任务。
此外,EXT MessageBox 还支持图标、自动聚焦、延迟显示等特性。 在实际开发中,我们可能会遇到以下应用场景: - **验证**:在用户提交表单前,使用 MessageBox 提示用户确认信息或警告潜在问题。 - **用户反馈**:...
18. **Ext.util.DelayedTask类**:延迟任务,可以设定一段时间后执行函数。 19. **Ext.util.TaskRunner类**:任务调度器,可以周期性地执行任务。 20. **Ext.util.TextMetrics类**:用于测量文本的尺寸,帮助布局...
为了使弹出框在n秒后自动关闭,我们需要创建一个延时任务,并在任务中调用`Ext.MessageBox.hide`方法。延时任务的创建和启动可以通过`new Ext.util.DelayedTask(function() { ... })`和`delay`方法实现。以下是一个...
标题中的“3-ext_int.rar_ext_int”可能是指一个关于F2812数字信号处理器(DSP)中断系统使用的代码库或教程,其中包含了与外部中断(ext_int)相关的程序示例。这个压缩包可能包含了一个或者多个源代码文件,帮助...
`Ext.util.DelayedTask`是延迟执行任务的工具,可以避免频繁调用导致的性能问题。`Ext.util.MixedCollection`是混合集合类,能同时管理不同类型的对象并提供便捷的遍历和查找功能。 3. **DD (DragDrop)**:拖放功能...
**Ext.util.DelayedTask** 用于延迟执行函数,提供了`cancel()`取消延迟任务和`delay()`设置延迟时间的方法。 **Ext.util.Format** 包含了许多格式化方法,如: 28. **ellipsis**: 截断字符串并在尾部添加省略号,...
CUDA API提供了对GPU硬件的直接访问,使得开发者可以编写高效、低延迟的代码来执行大规模数据并行计算。 在**nnabla_ext_cuda** 中,CUDA扩展提供了以下关键功能: 1. **GPU加速**:将神经网络的计算转移到GPU上,...
5. **应用程序集成**:结合SSH和EXT2,可能创建了一个简单的应用,如远程管理系统维护任务,或者提供一种安全的方式来访问和管理远程服务器上的EXT2文件系统。 6. **性能优化**:SSH的性能可能会影响EXT2文件系统的...