>  기사  >  웹 프론트엔드  >  매개변수_javascript 기술을 사용한 타이머(setTimeout/setInterval) 호출 함수 실패에 대한 해결 방법

매개변수_javascript 기술을 사용한 타이머(setTimeout/setInterval) 호출 함수 실패에 대한 해결 방법

WBOY
WBOY원래의
2016-05-16 17:39:181394검색

먼저 타이머의 사용법을 살펴보겠습니다
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()도 적용 가능하므로 여기서는 자세히 설명하지 않겠습니다.
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.