먼저 타이머의 사용법을 살펴보겠습니다
1. setInterval(code,millisec[,"lang"]) setInterval() 메소드는 지정된 주기(밀리초 단위)에 따라 함수를 호출하거나 표현식을 계산할 수 있습니다.
参数 |
描述 |
code |
必需,要调用的函数或要执行的代码串。 |
millisec |
必需,周期性执行或调用 code 之间的时间间隔,以毫秒计。 |
2.setTimeout(code,millisec) setTimeout() 메서드는 지정된 밀리초 후에 함수를 호출하거나 표현식을 계산하는 데 사용됩니다.
参数 |
描述 |
code |
必需,要调用的函数后要执行的 JavaScript 代码串。 |
millisec |
必需,在执行代码前需等待的毫秒数。 |
팁: setTimeout()은 코드를 한 번만 실행합니다. 여러 번 호출하려면 setInterval()을 사용하거나 코드 자체에서 setTimeout()을 다시 호출하도록 하세요.
아마도 이러한 문제가 발생했을 수 있습니다. setInterval()이든 setTimeout()이든 매개변수가 있는 함수가 코드 매개변수에 배치되면 타이머가 실패합니다.
function test(str){
alert(str );
}
var a = "abcde"
setTimeout(test(a),3000);
위 코드를 실행하면 페이지 호출이 지연되지 않습니다. test(a)는 3초 동안 실행되지만 즉시 test(a)가 실행됩니다. 이 문제는 IE, FF, Chrome에서 발생합니다. 타이머를 자주 사용한다면 이 문제를 자주 겪게 되는데, 어떻게 해결해야 할까요?
여기서 저자는 일반적으로 사용되는 두 가지 솔루션을 요약합니다. 물론 다른 솔루션도 있을 것이므로 여기서는 자세히 설명하지 않겠습니다.
방법 1:
함수 테스트(str){
alert(str);
}
var a = "abcde"
setTimeout(function(){
test(a);
}, 3000);
방법 2: 호출할 함수를 따옴표로 묶습니다
function test(str){
alert(str)
}
var a = "abcde"
setTimeout("test( ' a ')",3000) ;
위에서는 setTimeout()만 예로 들었고, setInterval()도 적용 가능하므로 여기서는 자세히 설명하지 않겠습니다.