2016-09-07 4 views
1

5 초 후에 어떻게이 프로세스를 중지 할 수 있습니까?X 초 후에 만료 또는 제한 시간 종료 없음

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> 
<script type="text/javascript"> 
    function changeBanner(){ 
     // my change banner code 
    } 
    window.onload = function() { setInterval(changeBanner, 100) }; 
</script> 

그래서 현재 100 밀리 초마다 배너가 변경됩니다. 하지만 약 5 초 후에 멈추고 싶습니다.

나는 setTimeout이 트릭을 할 수도 있다고 생각했다;

window.onload = function() { setTimeout(setInterval(changeBanner, 100), 5000) }; 

하지만 차이는 없습니다.

+0

와우. 빠른 답변을 보내 주셔서 감사합니다. – mikelovelyuk

답변

6

약 5 초 후에 중지하고 싶습니다.

저장 setInterval에 의해 주어진 및이를 달성하기 위해 기능 래퍼를 구현하는 몇 가지 라이브러리도 있습니다 clearInterval

var timer = setInterval(changeBanner, 100); 
setTimeout(function() { 
    clearInterval(timer) 
}, 5000); 

와 함께 사용 리턴 값. 더 이상 통과하지 않습니다 반대 clearInterval를 사용하여이 그러나 50 회 (10 * 5 초)가 호출 된 후, 영원히 changeBannerLimited 함수를 호출 지속될 것으로

var changeBannerLimited = _.before(50, changeBanner); 
var timer = setInterval(changeBannerLimited, 100); 

참고 : 예를 들어, underscore.js에 당신은 _.before을 사용할 수 있습니다 changeBanner를 호출합니다. 내가 잘 알고 있기 때문에 보조 노트에

나는 underscore.js를 선택하고 잘 annotated source code을 형식의 제공하기 때문에 그래서 당신은 쉽게 정말 무대 뒤에서 무슨 일이 일어나고 있는지 이해할 수있다. 나중에 취소 할 수 있도록

+1

저는 프론트 엔드 개발자는 아니며 실제로 프로토 타입 응용 프로그램입니다. 그래서 아마도 clearInterval 대답을 사용할 것입니다. 나는 심지어 언더 스코어에 대해서도 들어 본 적이 없다. js하지만 더 많은 프론트 엔드를 시작하면 마음에 품을 것이다! – mikelovelyuk

3

당신은 변수에 setInterval의 반환 값을 저장할 수 :

function changeBanner(){ 
    // my change banner code 
} 
window.onload = function() { 
    var id=setInterval(changeBanner, 100); 
    window.setTimeout(function() { 
     window.clearInterval(id); 
    },5000); 
}; 
2

clearInterval를 호출 할 수있는 변수에 setInterval 출력을 유지;

window.onload = function() { 

    var job= setInterval(changeBanner, 100) ; 
    setTimeout(clearInterval(job), 5000) 

}; 
3

clearInterval을 사용하십시오.

window.onload = function() { 
    var bannerInterval = setInterval(changeBanner, 100); 
    setTimeout(function() { 
     clearInterval(bannerInterval); 
    }, 5000); 
}; 
관련 문제