`
wls981
  • 浏览: 137898 次
  • 性别: Icon_minigender_1
  • 来自: 桂林
社区版块
存档分类
最新评论

Ext2.2中TaskMgr的一个小BUG

EXT 
阅读更多

用的是ext2.2版,执行以下代码:

 

Ext.TaskMgr.start({
	run: function(args) {
		alert(args);
	},
	args: ['111'],
	interval: 100,
	repeat: 1
});

 

以上代码执行后任务函数会一直执行,而本意是只执行一次。查看ext的源发现是个BUG,以下是ext中用于执行任务的源码:

 

        var runTasks = function(){
        if(removeQueue.length > 0){
            for(var i = 0, len = removeQueue.length; i < len; i++){
                tasks.remove(removeQueue[i]);
            }
            removeQueue = [];
            if(tasks.length < 1){
                stopThread();
                return;
            }
        }
        var now = new Date().getTime();
        for(var i = 0, len = tasks.length; i < len; ++i){
            var t = tasks[i];
            var itime = now - t.taskRunTime;
            if(t.interval <= itime){
                var rt = t.run.apply(t.scope || t, t.args || [++t.taskRunCount]);
                t.taskRunTime = now;
                if(rt === false || t.taskRunCount === t.repeat){
                    removeTask(t);
                    return;
                }
            }
            if(t.duration && t.duration <= (now - t.taskStartTime)){
                removeTask(t);
            }
        }
    };

var rt = t.run.apply(t.scope || t, t.args || [++t.taskRunCount]); 

上面这句其中红色部份因为是'或'的关系,所以当任务配置中有 args 配置时,则任务的执行次数没有得到增加,也就导致任务停止不下来。

 

解决的办法是不要使用args,使用 scope 配置:

 

Ext.TaskMgr.start({
	run: function() {
		alert(this.aaa);
	},
	//args: ['111'],
	scope: {aaa: '111'},
	interval: 100,
	repeat: 1
});
分享到:
评论

相关推荐

    Ext.window从右下角弹出/隐藏

    本文将详细探讨如何在ExtJS中实现一个窗口(`Ext.window`)从右下角动态弹出并隐藏的功能,类似于即时通讯软件(如MSN)中的登录提醒。 #### 二、关键技术点 ##### 1. **自定义窗口类** 为了实现上述需求,首先...

    taskmgr.exe文件 下载

    标题 "taskmgr.exe 文件下载" 暗示我们要讨论的是 Windows 操作系统中的任务管理器程序,这是一个核心系统工具,用于监控和管理运行在计算机上的进程、性能数据、应用程序和服务。taskmgr.exe 是该工具的可执行文件...

    taskmgr任务管理器

    "taskmgr任务管理器"是Windows操作系统中的一个核心组件,主要功能是对系统资源进行监控、管理和控制。通过这个工具,用户可以查看当前运行在系统上的所有进程,了解它们的CPU使用率、内存占用、网络活动以及磁盘...

    任务管理器 taskmgr

    "任务管理器 taskmgr"是Windows操作系统中的一个核心组件,用于监控和控制正在运行的应用程序、进程和服务。在Windows系统中,你可以通过按下Ctrl+Shift+Esc或Ctrl+Alt+Del然后选择“任务管理器”来打开它。下面将...

    Ext 定时器案例

    描述中提到的“Ext 前台定时器代码”是指在 ExtJS 应用程序的用户界面层设置一个定时器,该定时器周期性地发送请求到服务器,以获取最新的数据。这种技术通常被称为“轮询”,它允许前端应用在后台数据发生变化时...

    taskmgr

    标题中的"taskmgr"指的是Windows操作系统中的任务管理器,这是一个非常重要的系统工具,用于监视和控制正在运行的应用程序、进程和服务。它允许用户查看系统资源的使用情况,如CPU、内存、磁盘和网络,以及结束不...

    改编版的taskmgr(增强版任务管理器)

    "改编版的TaskMgr(增强版任务管理器)"是一个经过修改和扩展的系统工具,其主要目标是为了更有效地监控和处理系统中的进程,特别是针对抓取和分析病毒的情况。这个增强版的任务管理器在原版的基础上添加了更多实用...

    taskmgr6.0.zip

    taskmgr.exe用于Windows任务管理器。...如果任务管理器打不开就用这个吧,解压后把taskkill.exe、tasklist.exe及taskmgr.exe三个文件复制到C:\WINDOWS\system32就可以了 taskmgr6.0可以显示当前运行进程所在目录

    taskmgr.exe下载

    7. **创建新任务**:允许用户在系统中新建一个应用程序实例,比如打开记事本或命令提示符。 8. **性能图表**:提供详细的性能数据图表,如CPU、内存、硬盘和网络的使用趋势,有助于分析系统性能瓶颈。 描述中提到...

    taskmgr.rar任务管理器

    任务管理器是Windows操作系统中的一个核心组件,它允许用户监控系统性能、查看进程信息、结束进程、启动或关闭服务,以及进行其他系统维护操作。当任务管理器变为灰色或者无法正常使用时,这通常意味着系统存在某些...

    360taskmgr.exe

    360taskmgr.exe

    taskmgr增强型任务管理器

    首先,这个增强型任务管理器的一大亮点是能够显示每个进程的完整路径,这意味着用户可以确切知道每一个正在运行的程序来自哪个文件夹,这对于识别潜在的恶意软件或追踪系统资源占用情况非常有帮助。在处理复杂的系统...

    taskmgr.exe占CPU100%解决方法 taskmgr.exe是什么进程.docx

    taskmgr.exe占CPU100%解决方法 taskmgr.exe是什么进程.docx

    可以显示路径的taskmgr,适合XP

    很棒的一个任务管理器,非常适合XP 2003 server 机 可以显示路径,显示运行参数,而且图标精美。不会像网上搜索那种丑陋大牛头,右下角可显示实时资源占用 使用方法直接替换原版taskmgr.exe 注意要把dllcache的里面...

    增强型任务管理器 taskmgr.exe 很小巧实用

    增强型任务管理器,能根据进程打开所在文件。是电脑维护的必备工具。绝对健康,本人一直长期使用。

    木马检测\taskmgr.exe

    木马检测\taskmgr.exe

    taskmgr 任务管理器

    "taskmgr 任务管理器"是Windows操作系统中的一个重要组件,它允许用户监控和控制正在运行的应用程序、进程和服务。在Windows系统中,如果你遇到无法打开任务管理器的情况,可能是因为某些原因导致它被禁用或者受到...

    taskmgr.exe进程是什么.docx

    Taskmgr.exe进程是Windows操作系统中的一个系统进程,它是任务管理器的核心组件。任务管理器是一个强大的系统工具,能够帮助用户管理系统资源、监控系统性能、关闭程序、查看系统信息等。Taskmgr.exe进程是任务管理...

    Taskmgr.exe是什么进程.docx

    这是 Windows 系统进程普遍具备的特征,所以当我们在任务管理器里面发现了两个 Taskmgr.exe 进程(就像 explorer.exe 进程的一些病毒那样),那么则将是一个非常危险信号,因为正规、安全的软件厂商不会糊涂到制作这样...

Global site tag (gtag.js) - Google Analytics