1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- /*
- * Ext JS Library 2.0 Copyright(c) 2006-2007, Ext JS, LLC. licensing@extjs.com
- *
- * http://extjs.com/license
- */
- Ext.util.TaskRunner = function(E) {
- E = E || 10;
- var F = [], A = [];
- var B = 0;
- var G = false;
- var D = function() {
- G = false;
- clearInterval(B);
- B = 0
- };
- var H = function() {
- if (!G) {
- G = true;
- B = setInterval(I, E)
- }
- };
- var C = function(J) {
- A.push(J);
- if (J.onStop) {
- J.onStop.apply(J.scope || J)
- }
- };
- var I = function() {
- if (A.length > 0) {
- for (var O = 0, K = A.length; O < K; O++) {
- F.remove(A[O])
- }
- A = [];
- if (F.length < 1) {
- D();
- return
- }
- }
- var M = allGetServerTime().getTime();
- for (var O = 0, K = F.length; O < K; ++O) {
- var N = F[O];
- var J = M - N.taskRunTime;
- if (N.interval <= J) {
- var L = N.run.apply(N.scope || N, N.args || [++N.taskRunCount]);
- N.taskRunTime = M;
- if (L === false || N.taskRunCount === N.repeat) {
- C(N);
- return
- }
- }
- if (N.duration && N.duration <= (M - N.taskStartTime)) {
- C(N)
- }
- }
- };
- this.start = function(J) {
- F.push(J);
- J.taskStartTime = allGetServerTime().getTime();
- J.taskRunTime = 0;
- J.taskRunCount = 0;
- H();
- return J
- };
- this.stop = function(J) {
- C(J);
- return J
- };
- this.stopAll = function() {
- D();
- for (var K = 0, J = F.length; K < J; K++) {
- if (F[K].onStop) {
- F[K].onStop()
- }
- }
- F = [];
- A = []
- }
- };
- Ext.TaskMgr = new Ext.util.TaskRunner();
|