`
zhouyrt
  • 浏览: 1162218 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

读Ext之六(延迟任务的执行)

EXT 
阅读更多

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 将提供更为强大,多任务定时管理功能。

 

 

3
1
分享到:
评论

相关推荐

    Ext-Gantt和相关js如ext-all.js ext-base

    在一些情况下,如果项目对加载速度有较高要求,可以先加载`ext-base.js`,然后再按需加载其他组件,以实现按需加载(延迟加载)来减少页面的初始加载时间。 甘特图是一种图形表示项目计划的方法,通常用水平条形图...

    extapi

    最后,"EXT核心API详解(七)-Ext.KeyNav KeyMap JSON Format DelayedTask TaskRunner TextMetrics XTemplate.txt"涉及键盘导航(KeyNav)、键映射(KeyMap)、JSON格式化、延迟任务(DelayedTask)、任务调度器...

    整理的Ext API详解

    Ext.KeyNav KeyMap JSON Format DelayedTask TaskRunner TextMetrics XTemplate.txt"涵盖了键盘导航(KeyNav)、键映射(KeyMap)等高级交互功能,JSON格式处理,延迟任务(DelayedTask)和任务调度(TaskRunner)以...

    Ext 定时器案例

    `DelayedTask` 用于延迟执行一次函数,而 `TaskRunner` 则可以周期性地执行任务,更适合于轮询场景。 1. **使用 `Ext.util.TaskRunner`** - 创建 `TaskRunner` 实例:`var taskRunner = new Ext.util.TaskRunner()...

    ext4.0,ext3.0中文API,帮助文档

    2. **更快的挂载和卸载时间**:EXT4引入了延迟分配(Delayed Allocation)策略,这使得文件写入更高效,减少了挂载和卸载的时间。 3. **更快的文件创建和删除**:EXT4支持大块分配(Huge File Allocation),允许一...

    ext扩展 延时加载

    - 利用`Ext.util.DelayedTask`或`setTimeout`等函数,延迟非关键任务的执行。 通过上述知识点,我们可以理解EXT JS中延时加载的工作原理,以及如何通过`BudgetWeaveModel.js`这样的模型文件来实现这一功能。在实际...

    ext4.0 api英文

    **EXT4.0 API详解** EXT4,全称第四代扩展文件系统(Fourth-Extended File System),是Linux操作系统中广泛使用的日志...通过这些API,开发者可以高效地构建和维护EXT4文件系统,实现各种复杂的文件操作和管理任务。

    各种弹出窗口 ext窗口

    此外,EXT MessageBox 还支持图标、自动聚焦、延迟显示等特性。 在实际开发中,我们可能会遇到以下应用场景: - **验证**:在用户提交表单前,使用 MessageBox 提示用户确认信息或警告潜在问题。 - **用户反馈**:...

    EXT核心API详解.doc

    18. **Ext.util.DelayedTask类**:延迟任务,可以设定一段时间后执行函数。 19. **Ext.util.TaskRunner类**:任务调度器,可以周期性地执行任务。 20. **Ext.util.TextMetrics类**:用于测量文本的尺寸,帮助布局...

    extjs弹出框 n秒后消失

    为了使弹出框在n秒后自动关闭,我们需要创建一个延时任务,并在任务中调用`Ext.MessageBox.hide`方法。延时任务的创建和启动可以通过`new Ext.util.DelayedTask(function() { ... })`和`delay`方法实现。以下是一个...

    3-ext_int.rar_ext_int

    标题中的“3-ext_int.rar_ext_int”可能是指一个关于F2812数字信号处理器(DSP)中断系统使用的代码库或教程,其中包含了与外部中断(ext_int)相关的程序示例。这个压缩包可能包含了一个或者多个源代码文件,帮助...

    Ext学习文档(介绍 Core Util DD Widgets并有例子)

    `Ext.util.DelayedTask`是延迟执行任务的工具,可以避免频繁调用导致的性能问题。`Ext.util.MixedCollection`是混合集合类,能同时管理不同类型的对象并提供便捷的遍历和查找功能。 3. **DD (DragDrop)**:拖放功能...

    Extjs-常用函数和事件

    **Ext.util.DelayedTask** 用于延迟执行函数,提供了`cancel()`取消延迟任务和`delay()`设置延迟时间的方法。 **Ext.util.Format** 包含了许多格式化方法,如: 28. **ellipsis**: 截断字符串并在尾部添加省略号,...

    Python库 | nnabla_ext_cuda-1.0.14-cp35-cp35m-win_amd64.whl

    CUDA API提供了对GPU硬件的直接访问,使得开发者可以编写高效、低延迟的代码来执行大规模数据并行计算。 在**nnabla_ext_cuda** 中,CUDA扩展提供了以下关键功能: 1. **GPU加速**:将神经网络的计算转移到GPU上,...

    SSH+EXT2打造简单的应用(五)

    5. **应用程序集成**:结合SSH和EXT2,可能创建了一个简单的应用,如远程管理系统维护任务,或者提供一种安全的方式来访问和管理远程服务器上的EXT2文件系统。 6. **性能优化**:SSH的性能可能会影响EXT2文件系统的...

    extjs帮助文档

    - `Ext.util.DelayedTask.cancel()`:取消延迟任务。 #### 二十一、Ext.util.TaskRunner类(第21页) - **概述**:Ext.util.TaskRunner类用于管理和执行定时任务。 - **常用方法**: - `Ext.util.TaskRunner.run...

Global site tag (gtag.js) - Google Analytics