Ext 7 읽기(다중 작업 시간 관리)

3871 단어 ext
Ext.util.TaskRunner는 멀티태스킹을 관리하는 데 사용됩니다.모든 임무는 하나의 JS 대상으로 다음과 같은 속성을 가진run,interval,args,scope,duration,repeat.예는 다음과 같습니다.
var task = {
	run : function(){...},
	interval : 1000,
	args : [],
	scope : obj,
	duration : 5000,
	repeat : 3
}

 
run과interval은 필수이며, 다른 것은 선택할 수 있습니다.
 
공중 클래스는 다음과 같습니다.
Ext.util.TaskRunner = function(interval){
    interval = interval || 10;
    var tasks = [], 
    	removeQueue = [],
    	id = 0,
    	running = false,

		...
	    
    	// private
    	runTasks = function(){
			...
	    };

    this.start = function(task){
    	...
    };

    this.stop = function(task){
		...
    };

    this.stopAll = function(){
		...
    };
};
Ext.TaskMgr = new Ext.util.TaskRunner();

 
 
Ext.util.TaskRunner는 하나의 클래스로 new를 사용해야 합니다.정의 방식은 동일Ext.util.DelayedTask, 채택구조 함수 방식이다.세 가지 인터페이스 방법, start,stop,stopAll을 외부에 제공했습니다.또 다른 한 무더기의 개인 함수는 전체 종류를 구성하는 데 협조하는데 그 중에서 가장 중요한 것은runTasks,this.start에서 호출합니다.마지막 문장은 최고급 명칭 공간인 Ext에 TaskMgr이 걸려 있음을 볼 수 있습니다. Ext 라이브러리 자체는 Ext.TaskMgr를 사용하여 다중 작업의 시간 관리를 합니다.
 
다음은 먼저 이 종류의 사용 예시 1을 열거한다
//  
var taskMgr = new Ext.util.TaskRunner();
//  
var task1 = {
	run : function(){
		console.log('test');
	},
	interval : 1000
};	
//  task1
taskMgr.start(task1);

컨트롤러에서 1초마다test를 출력하는 것을 볼 수 있습니다.run은function 형식입니다. 즉, 작업을 표시합니다.interval은 Number 형식으로 작업 수행 간격을 나타냅니다.예제 2
//  
var taskMgr = new Ext.util.TaskRunner();
//  
var task1 = {
	run : function(){
		console.log(arguments);
		console.log(this);
	},
	interval : 1000,
	args : [1,2],
	scope : window
};	
//  task1
taskMgr.start(task1);

컨트롤러에서 1초마다 "[1,2]", "윈도우"를 출력하는 것을 볼 수 있다.즉, args(Array 형식)는 run이 호출할 때의 매개 변수이고, scope(Object 형식)는 run이 실행할 때의 상하문입니다.예 3
//  
var taskMgr = new Ext.util.TaskRunner();
//  
var task1 = {
	run : function(){
		console.log('test');
	},
	interval : 1000,
	duration : 5000
};	
//  task1
taskMgr.start(task1);

컨트롤러에서 볼 수 있듯이 여전히 1초에 한 번씩 "test"를 출력하지만 5초 후에 멈춘다.즉duration(정수, 단위는 밀리초)은 작업run이 계속 실행하는 시간으로 이 시간을 초과하면 다시 실행하지 않습니다.duration을 4900으로 설정해도 5회 실행됩니다.예 4
//  
var taskMgr = new Ext.util.TaskRunner();
//  
var task1 = {
	run : function(){
		console.log('test');
	},
	interval : 1000,
	repeat : 3
};	
//  task1
taskMgr.start(task1); 

컨트롤러에서 볼 수 있듯이 여전히 1초에 한 번씩 "test"를 출력하지만, 출력을 세 번 하면 멈춘다.즉, repeat(Number 형식)는 작업run이 수행하는 횟수이며, 이 횟수를 초과하면 실행하지 않습니다.주의,repeat는 소수(예를 들어 3.3)일 수 없습니다. 그렇지 않으면 세 번이 아니라 계속 실행됩니다.상기 예는 임무 대상의 각 속성적 의미를 이해했다.단지 하나의 임무일 뿐,
//  
var taskMgr = new Ext.util.TaskRunner();
//  
var task1 = {
	run : function(){
		console.log('test1');
	},
	interval : 1000,
};
var task2 = {
	run : function(){
		console.log('test2');
	},
	interval : 3000,
};	
//  
taskMgr.start(task1);
taskMgr.start(task2);

컨트롤러에서 볼 수 있듯이 여전히 1초에'test1','test2'를 출력하고, 2초에는test1만 출력하고, 3초에'test1','test2'를 출력합니다.두 가지 임무가 수행되고 있습니다.start 방법, stop과 stopAll 방법을 알면 잘 이해할 수 있습니다.복창할 필요가 없다.

좋은 웹페이지 즐겨찾기