사용 setTimeout()
이하면 지정된 시간에 함수를 실행 할 수 있습니다 :
setTimeout(function, 60000);
그러나 기능을 여러 번 시작하려면 어떻게해야합니까? 시간 간격이 지날 때마다 함수를 실행하고 싶습니다 (60 초마다).
답변
안에있는 코드가 timer
간격보다 오래 걸릴지 신경 쓰지 않으면 다음을 사용하십시오 setInterval()
.
setInterval(function, delay)
첫 번째 매개 변수로 전달 된 함수가 계속해서 발생합니다.
더 나은 방법은 함수 setTimeout
와 함께 사용 하는 self-executing anonymous
것입니다.
(function(){
// do some stuff
setTimeout(arguments.callee, 60000);
})();
코드가 실행되기 전에 다음 호출이 이루어지지 않도록 보장합니다. arguments.callee
이 예제에서는 함수 참조로 사용 했습니다. 이 기능을 내있는 이름과 전화 줄 수있는 더 좋은 방법 setTimeout
때문에이 arguments.callee
인 ECMAScript 5에서 더 이상 사용되지 않습니다를.
답변
사용
setInterval(function, 60000);
편집 : (시계가 시작된 후 시계를 중지하려는 경우)
스크립트 섹션
<script>
var int=self.setInterval(function, 60000);
</script>
및 HTML 코드
<!-- Stop Button -->
<a href="#" onclick="window.clearInterval(int);return false;">Stop</a>
답변
매초마다 폴링하고 몇 초 후에 끝나는 폴링 기능을 구현하기 위해 jAndy 의 대답 을 더 잘 사용 합니다.interval
timeout
function pollFunc(fn, timeout, interval) {
var startTime = (new Date()).getTime();
interval = interval || 1000;
(function p() {
fn();
if (((new Date).getTime() - startTime ) <= timeout) {
setTimeout(p, interval);
}
})();
}
pollFunc(sendHeartBeat, 60000, 1000);
최신 정보
주석에 따라 전달 된 함수가 폴링을 중지 할 수 있도록 업데이트하십시오.
function pollFunc(fn, timeout, interval) {
var startTime = (new Date()).getTime();
interval = interval || 1000,
canPoll = true;
(function p() {
canPoll = ((new Date).getTime() - startTime ) <= timeout;
if (!fn() && canPoll) { // ensures the function exucutes
setTimeout(p, interval);
}
})();
}
pollFunc(sendHeartBeat, 60000, 1000);
function sendHeartBeat(params) {
...
...
if (receivedData) {
// no need to execute further
return true; // or false, change the IIFE inside condition accordingly.
}
}
답변
jQuery에서는 다음과 같이 할 수 있습니다.
function random_no(){
var ran=Math.random();
jQuery('#random_no_container').html(ran);
}
window.setInterval(function(){
/// call your function here
random_no();
}, 6000); // Change Interval here to test. For eg: 5000 for 5 sec
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="random_no_container">
Hello. Here you can see random numbers after every 6 sec
</div>
답변
setInterval(fn,time)
당신이 따르는 방법입니다.
답변
함수 끝에서 간단히 setTimeout을 호출 할 수 있습니다. 이벤트 대기열에 다시 추가됩니다. 모든 종류의 로직을 사용하여 지연 값을 변경할 수 있습니다. 예를 들어
function multiStep() {
// do some work here
blah_blah_whatever();
var newtime = 60000;
if (!requestStop) {
setTimeout(multiStep, newtime);
}
}