Ext 읽기 6(작업 수행 지연)

1683 단어 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만 걸었습니다.set Timeout 대신 set Interval과clear Interval을 교묘하게 사용합니다.DelayedTask에는 세 개의 매개 변수가 있습니다. fn은 실행 지연이 필요한 함수 (필수지만delay에 지정할 수 있습니다), scope는 이 함수가 실행될 때의 상하문 (선택 가능), args는 이 함수에 전달되는 매개 변수 (선택 가능) 입니다.delay 방법의 다음 세 가지 매개 변수는 DelayedTask 구조기와 같고 첫 번째 매개 변수는 지연이 필요한 시간 숫자로 밀리초입니다.예는 다음과 같습니다.
function fn(){
	alert('test');
}
var task = new Ext.util.DelayedTask(fn);
task.delay(2000);
 
fn을 2초 후에 실행합니다.이것은 가장 간단한 예이다. 복잡한 것은 fn의 실행 상하문을 지정할 수 있고 매개 변수를 전달할 수 있다.이 종류는 Ext.util에 있습니다.이벤트 클래스에서 개인 함수인createBuffered,createDelayed가 사용됩니다.이 두 함수는 Ext.util에 있습니다.Event의createListener 방법에 사용됩니다.
 
다음 Ext.util.TaskRunner는 더욱 강력하고 멀티태스킹 시간 관리 기능을 제공합니다.
 

좋은 웹페이지 즐겨찾기