쓸만한 글

setInterval

봄돌73 2006. 12. 1. 13:42
출처 : http://blog.daum.net/brigri/7075833



setInterval 함수는 주기적으로 function을 실행 시킬 수 있다. 사용 방법은 다음과 같다

 

id = window.setInterval(함수명, 시간);

 

해제하는 함수는 clearInterval 이다.

 

clearInterval(id)

 

그리고 함수에 파라매터도 전달 할 수 가 있는데

 

사용방법은

 

id = window.setInterval("myFunc(777)", 1000);

 

이런식이다 myFunc 에 777 이라는 파라매터를 넘기면서 1초마다 실행 되게 하는 예이다.

 

파이어 폭스에서는

 

id = window.setInterval(myFunc, 1000, 777);

 

과 같이도 사용할 수 있는데 크로스 브라우징을 위해서 처음 예와 같이 사용하는것이 좋다

 

그리고 파라매터를 넘길때는 반드시 함수명을 " "로 묵어 스트링으로 넘겨줘야 한다.

 

마지막으로 중요한 것이 하나 있는데

 

i = 1;

id1 = window.setInterval("myFunc(i)", 1000);

 

i = 2;

id2 = window.setInterval("myFunc(i)", 1000);

 

위의 예제에서 myFunc(1)을 값을 가지는 타이머와 myFunc(2)를 가지는 타이머 두개를

돌리고 싶다면 위와 같이 하면 안된다 위와 같이 하면 myFunc(i) 라는 타이머 하나만 돌고

가지는 파라매터는 처음 i = 1을 가졌다가 바로 i = 2로 변경 되기 때문에 i는 항상 2를 가진

타이머 하나만 생성 되게 된다. 따라서 myFunc(1) 과 myFunc(2)를 가지는 두개의 타이머를

생성하고 싶은 경우에는 eval을 사용해서 다음과 같이 한다.

 

i = 1;

eval("id1 = window.setInterval('myFunc(" + i + ")', 1000);");

 

i = 2;

eval("id2 = window.setInterval('myFunc(" + i + ")', 1000);");