setInterval , setTimeout

 

setInterval

일정 시간 간격을 두고 특정 함수를 실행시키고자 할 때 사용.

특정서버와의 통신을 N 회까지 retry(재시도) 시키는 기능, 타이머 기능(초시계 등) 등의 기능 개발시 사용

 

[실행]

1
var loopInterval = setInterval("loopFunc.checkLooping()"1*2000);
cs

: 2초 뒤 loopFunc.checkLooping() 함수 실행

 

[중단]

1
2
3
if(loopInterval){ 
    clearInterval(loopInterval); 
}
cs

: loopInterval 이 defined 이면(인터벌이 정의되어있으면) 인터벌을 제거.

 

※ 사용시 주의사항

setInterval은 실행시 "시간간격 > 실행 > 시간간격 > 실행 ~" 과 같은 순서로 실행된다.

(위에서 예를 든 코드는 2초뒤에 loopFunc.checkLooping() 함수를 최초로 실행한다)

따라서 "실행 > 시간간격 > 실행 > 시간간격 ~" 과 같이 함수 실행을 우선적으로 시킨 후 시간간격을 두고 싶다면,

1
2
loopFunc.checkLooping();
var loopInterval = setInterval("loopFunc.checkLooping()"1*2000);
cs

위와 같이 setInterval함수를 호출하기 앞서 함수를 강제로 한 번 호출해주면 된다.

 

 

 

setTimeout

일정 시간 후에 특정 함수를 1회 실행시키고자 할 때 사용

강제로 시간 텀을 두어 함수를 실행시켜야 할 때, java 에서의 Thread.sleep(~); 과 같이 시간 텀을 강제로 줄 필요가 있는 경우(딜레이) 사용

 

[실행]

1
setTimeout(function(){sample()}, 1000);
cs

: 1초 뒤 sample() 함수 실행

 

 

 

 

 

 

 

반응형

+ Recent posts