- 浏览: 257101 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
dhunter:
mongodb 需要auth 怎么加呢?
linux下mongodb+nodejs环境搭建 -
y1d2y3xyz:
xie666 写道html.push('<td alig ...
javascript DOM操作性能-----创建DOM -
xie666:
html.push('<td align="c ...
javascript DOM操作性能-----创建DOM -
轩辕丶菓菓:
bushkarl 写道那我后台用struts2,我的name一 ...
Ext表单之loadRecord用法详解 -
heikediguo:
这样不会按照你想要的顺序加载。
加载JS文件
/** * @class Ext.util.TaskRunner * @description 模拟多线程的JS类 //一个简单的更新闹钟时间的任务 var updateClock = function(){ Ext.fly('clock').update(new Date().format('g:i:s A')); } var task = { run: updateClock, interval: 1000 //1 秒 } var runner = new Ext.util.TaskRunner();//实例化一个线程管理器 runner.start(task);//开始执行task线程 //下面是简易的写法 Ext.TaskMgr.start({ run: updateClock, interval: 1000 }); * 对比查看{@link Ext.util.DelayedTask}. * @constructor * @param {Number} interval 这个设置线程管理器的执行时间,默认为10毫秒 * (defaults to 10) */ Ext.util.TaskRunner = function(interval){ interval = interval || 10; var tasks = [], //任务集合 removeQueue = [],//被移除的任务 id = 0,//定时器ID running = false,//是否正在执行 // private stopThread = function(){//停止执行,并把running 和 id 重置 running = false; clearInterval(id); id = 0; }, // private startThread = function(){//开始执行,确定当前进程还没执行 if(!running){ running = true; id = setInterval(runTasks, interval); } }, // private removeTask = function(t){//删除进程, removeQueue.push(t);//把不要再执行的进程放到removeQueue数组中,以等待下次执行其他进程的时候把删除掉 if(t.onStop){//进程停止后的回调函数 t.onStop.apply(t.scope || t); } }, // private runTasks = function(){ var rqLen = removeQueue.length,//获取被 now = new Date().getTime(); if(rqLen > 0){ for(var i = 0; i < rqLen; i++){ tasks.remove(removeQueue[i]);//把removeQueue中的值从tasks中移除 } removeQueue = [];//重新重置 removeQueue if(tasks.length < 1){//如果进程数为0,那直接返回,并停止当前正在执行的进程 stopThread(); return; } } for(var i = 0, t, itime, rt, len = tasks.length; i < len; ++i){ t = tasks[i]; itime = now - t.taskRunTime;//当前时间 - 线程的最后一次运行的时间 //因为这个函数默认的interval为10,也就是整个线程实例是每隔10毫秒会去监控一次是否有需要运行的任务, //这样做的原因是保障每个任务的定时器可以不一样,但都能执行得到,这就是这个函数能支持多个定时任务的原因所在,其实也就是模拟了多线程 if(t.interval <= itime){ rt = t.run.apply(t.scope || t, t.args || [++t.taskRunCount]); t.taskRunTime = now;//重新更新当前线程的执行时间 //如果线程结束,则删除当前线程 if(rt === false || t.taskRunCount === t.repeat){ removeTask(t); return; } } //如果存在 duration 并且已经超出了执行时间了,比如我要求这个线程执行时间 即duration 为一分钟, //那么我这个任务已经执行时间(当前时间 - 线程开始执行的时间)必须小于 一分钟,否则的话那这个线程就得删除 if(t.duration && t.duration <= (now - t.taskStartTime)){ removeTask(t); } } }; /** * Starts a new task. * @method start * @param {Object} task 配置属性:<ul> * <li>run : Function 每次执行的回调函数,参数为 下面的 args 或者 当前线程被执行的次数 </li> * <li>args : Array 这个值穿给上面的function</li> * <li>scope : Object 线程执行的作用域 默认为当前的线程 </li> * <li>duration : Number (optional) 执行的时长,单位是毫秒</li> * <li>repeat : Number(optional) 线程执行的次数</li> * </ul> * @return {Object} The task */ this.start = function(task){ tasks.push(task); task.taskStartTime = new Date().getTime();//线程开始执行的时间 task.taskRunTime = 0;//线程执行的的时间 这个是以毫秒为单位的数字 1000便是一秒 task.taskRunCount = 0;//线程执行的次数 startThread(); return task; }; /** * @description 停止某个线程执行 * @method stop * @param {Object} task 被停止的线程 * @return {Object} 返回被停止的线程 */ this.stop = function(task){ removeTask(task); return task; }; /** * @description 停止所有线程. * @method stopAll */ this.stopAll = function(){ stopThread(); for(var i = 0, len = tasks.length; i < len; i++){ if(tasks[i].onStop){ tasks[i].onStop(); } } tasks = []; removeQueue = []; }; }; //多线程实例化对象 Ext.TaskMgr = new Ext.util.TaskRunner();
发表评论
-
Extjs源码之--Ext事件机制/继承关系
2011-10-16 16:36 1860Extjs源码之--Ext.lib.Event 中分析了EX ... -
Extjs源码之--Ext.lib.Event(事件的简单封装)
2011-10-16 11:34 2641这个对象是对事件的基础封装,在实际使用中,我们往往不从这里去 ... -
Extjs源码之--Ext.lib.Dom(Dom的基本封装)
2011-10-13 23:31 2354Extjs的对Dom最基础的封装,主要包括:元素的包含关系,元 ... -
Extjs源码之---Ext.util.DelayedTask
2011-10-12 22:56 2432/* 创建对象 var task = new Ext. ... -
Extjs源码之-- Ext.util.JSON
2011-09-23 23:19 4038很多写extjs的朋友说,Extjs的源码之间的关系太紧了,所 ... -
Ext.form.ComboBox 远程带分页显示
2011-09-23 22:00 1866很多时候针对大数据量的下拉列表的时候,我们通常需要分页显示数据 ... -
Ext.form.ComboBox change事件的BUG
2011-09-08 23:11 5391因为项目需要,想用Ext的combo控件实现动态级联,发现co ... -
Ext.grid.EditorGridPanel 中combo的显示异常
2011-09-03 00:58 2769Ext.grid.EditorGridPanel 在项目中用到 ... -
extjs源码分析-016(Ext....)
2011-03-28 23:04 1045Ext.apply(Ext, function(){ ... -
extjs源码分析-015(Number扩展)
2011-03-20 01:03 879Ext.applyIf(Number.prototype, ... -
extjs源码分析-013(Array扩展)
2011-03-19 11:03 1117Ext.applyIf(Array.prototype, ... -
extjs源码分析-013(String扩展)
2011-03-18 23:05 1272//字符串替换 /* var cls = 'my-cl ... -
extjs源码分析-012(Funtion扩展)
2011-03-18 22:42 1289Ext.apply(Function.prototype, ... -
extjs源码分析-011(namespace)
2011-03-10 22:54 1083//命名空间,就是创建一个OBJ的一个属性, names ... -
extjs源码分析-009(Ext.urlAppend/toArray)
2011-03-10 22:43 1856//在URL后面追加参数 urlAppend : fun ... -
extjs源码分析-009(Ext.urlDecode/urlEncode)
2011-03-09 23:17 3258//把json格式转化成url的编码方式 // e.g. ... -
extjs源码分析-008(Ext.removeNode)
2011-03-09 22:35 1781DOC = document; removeNode : ... -
extjs源码分析-007(Ext.each)
2011-02-08 14:40 1613each : function(array, fn ... -
extjs源码分析-006(Ext.override/Ext.extend)
2011-02-08 00:40 2123override : function(o ... -
extjs源码分析-005(Ext.getDom,Ext.getBody)
2011-02-08 00:22 2031var DOC = document; //获取DOM节 ...
相关推荐
标题中的"extjs-Ext.ux.form.LovCombo下拉框"表明我们要讨论的是EXTJS中的一个特定组件,它是EXTJS的扩展插件,用于实现具有多选功能的下拉框。这个组件在处理火狐浏览器兼容性问题上做了优化,解决了在火狐浏览器下...
`extjs-basex.js`文件很可能是ExtJS库的一个部分,特别是针对BaseX扩展的功能。BaseX是一个高性能、XML数据库系统,常用于处理XML数据。在JavaScript环境中,BaseX的JavaScript接口允许开发者在Web应用中直接与BaseX...
从spket IDE 官网下载。 文件名: ext-4.2.1.883.jsb2 对应版本ext-4.2.*版本。spket自动提示ExtJs4,需要ext4.2.1.jsp2文件。
extjs-620-docs官方文档extjs-620-docs官方文档extjs-620-docs官方文档
extjs-basex.js extjs-basex.js extjs-basex.js
本文将深入探讨Ext.util.Format.Number()函数,它是ExtJS 4.0中的一个重要工具,用于格式化数字。 `Ext.util.Format`是ExtJS中一个非常实用的工具类,包含了一系列用于字符串、日期和数值等类型的数据格式化的静态...
ext 是 ExtJs 的简称,是一个强大的js 类库。本资源主要包括三个大的文件ext-all.css,ext-base.js,ext-al.js。在引用ext 类库的时候,这三个文件必不可少。另外我还提供了ext2的一个简单例子,以便大家学习交流。
Extjs中实现国际化要用到的文件ext-lang-zh_CN.js和ext-lang-en.js
document.write("<script type=\"text/javascript\" src=\"../extjs/adapter/ext/ext-base.js\"></script>"); document.write("<script type=\"text/javascript\" src=\"../extjs/ext-all.js\"></script>"); ...
官方最新版本Extjs6.2版本sdk,创建新项目的时候需要用, 全面的核心框架,具有最新的Javascript标准支持 新的漂亮组件和主题,以创建漂亮的企业应用程序 现代工具链,用于构建优化,高性能,通用的应用程序 用于可视...
从ext官方论坛上下的。 文件名: ext-4.2.1.883.jsb2 对应版本ext-4.2.1.883
Ext JS 6最大的变化就是将Ext JS和Touch合并为一个单一的框架。之前的框架的核心(数据、控制器、模型等等)已被调和为一个单一的公共平台。这样,数据和逻辑就能共享,从而帮助开发人员进一步去优化他们的应用程序...
本资源"ExtJS-4.2.2-gpl.rar"是ExtJS 4.2.2的开源版本,适用于GPL许可协议,包含完整的源码、示例、API文档以及相关的文档资料,对于学习和开发基于ExtJS的应用程序非常有帮助。 1. **ExtJS 4.2.2 版本详解** ...
标题中的"ext-4.2.1.883.7z"指的是ExtJS框架的一个特定版本,4.2.1.883,它被压缩成了7z格式的文件。7z是一种高效的文件压缩格式,由7-Zip软件创建,以提供更高的压缩比和更快的解压缩速度。7z文件通常需要使用支持7...
标题中的"ext-7.0.0-gpl.zip"是一个软件扩展或库的压缩包,遵循GPL(GNU General Public License)开源协议。这通常意味着它是一个免费的、可修改的软件,用户可以查看源代码并根据需要进行定制,但必须保留原始许可...
extjs4.0开发人员以及学习可以下载参考
在CDH使用oozie 的时候需要安装ext-2.2.zip; 新增和改进的功能包括: 1、FileUploadField 文件上传 体验例子见:http://extjs.com/deploy/dev/examples/form/file-upload.html 2、GMapPanel GMap扩展 体验...
Extjs4.1多个扩展 1、Ext.ux.aceeditor.Panel 2、Ext.ux.grid.feature.Tileview 3、Ext.ux.upload.Button 4、Ext.ux.toggleslide.ToggleSlide 5、Ext.ux.container.ButtonSegment 6、Ext.ux.grid.plugin.RowEditing ...
在“Extjs源码之--Ext事件机制/继承关系”中,我们将深入探讨EXTJS如何处理事件以及其类层次结构。EXTJS的事件处理主要由EventManager.js这个文件负责,它是EXTJS事件系统的基础。 首先,EXTJS的事件机制基于观察者...
在EXTJS这个强大的JavaScript框架中,`Ext.Panel`和`TreePanel`是两个非常重要的组件,它们被广泛用于构建复杂的用户界面。这篇文章将探讨如何在这些组件中动态加载本地页面数据,以提升用户体验并实现灵活的数据...