setTimeout 재설정
나는 다음을 가지고있다 :
window.setTimeout(function() {
window.location.href = 'file.php';
}, 115000);
클릭 기능을 통해 카운트 다운 도중에 카운터를 재설정하는 방법은 무엇입니까?
해당 시간 초과에 대한 참조를 저장 한 다음 clearTimeout
해당 참조 를 호출 할 수 있습니다 .
// in the example above, assign the result
var timeoutHandle = window.setTimeout(...);
// in your click function, call clearTimeout
window.clearTimeout(timeoutHandle);
// then call setTimeout again to reset the timer
timeoutHandle = window.setTimeout(...);
clearTimeout ()을 설정하고 setTimeout의 참조를 제공합니다 (숫자). 그런 다음 다시 호출하십시오.
var initial;
function invocation() {
alert('invoked')
initial = window.setTimeout(
function() {
document.body.style.backgroundColor = 'black'
}, 5000);
}
invocation();
document.body.onclick = function() {
alert('stopped')
clearTimeout( initial )
// re-invoke invocation()
}
이 예에서 5 초 안에 body 요소를 클릭하지 않으면 배경색이 검은 색이됩니다.
참고:
- https://developer.mozilla.org/en/DOM/window.clearTimeout
- https://developer.mozilla.org/En/Window.setTimeout
참고 : setTimeout 및 clearTimeout은 ECMAScript 기본 메소드가 아니라 글로벌 창 네임 스페이스의 Javascript 메소드입니다.
타임 아웃 "타이머"를 기억하고 취소 한 다음 다시 시작해야합니다.
g_timer = null;
$(document).ready(function() {
startTimer();
});
function startTimer() {
g_timer = window.setTimeout(function() {
window.location.href = 'file.php';
}, 115000);
}
function onClick() {
clearTimeout(g_timer);
startTimer();
}
var myTimer = setTimeout(..., 115000);
something.click(function () {
clearTimeout(myTimer);
myTimer = setTimeout(..., 115000);
});
그 라인을 따라 뭔가!
This timer will fire a "Hello" alertbox after 30 seconds. However, everytime you click the reset timer button it clears the timerHandle then re-sets it again. Once it's fired, the game ends.
<script type="text/javascript">
var timerHandle = setTimeout("alert('Hello')",3000);
function resetTimer() {
window.clearTimeout(timerHandle);
timerHandle = setTimeout("alert('Hello')",3000);
}
</script>
<body>
<button onclick="resetTimer()">Reset Timer</button>
</body>
$(function() {
(function(){
var pthis = this;
this.mseg = 115000;
this.href = 'file.php'
this.setTimer = function() {
return (window.setTimeout( function() {window.location.href = this.href;}, this.mseg));
};
this.timer = pthis.setTimer();
this.clear = function(ref) { clearTimeout(ref.timer); ref.setTimer(); };
$(window.document).click( function(){pthis.clear.apply(pthis, [pthis])} );
})();
});
To reset the timer, you would need to set and clear out the timer variable
$time_out_handle = 0;
window.clearTimeout($time_out_handle);
$time_out_handle = window.setTimeout( function(){---}, 60000 );
var redirectionDelay;
function startRedirectionDelay(){
redirectionDelay = setTimeout(redirect, 115000);
}
function resetRedirectionDelay(){
clearTimeout(redirectionDelay);
}
function redirect(){
location.href = 'file.php';
}
// in your click >> fire those
resetRedirectionDelay();
startRedirectionDelay();
here is an elaborated example for what's really going on http://jsfiddle.net/ppjrnd2L/
i know this is an old thread but i came up with this today
var timer = []; //creates a empty array called timer to store timer instances
var afterTimer = function(timerName, interval, callback){
window.clearTimeout(timer[timerName]); //clear the named timer if exists
timer[timerName] = window.setTimeout(function(){ //creates a new named timer
callback(); //executes your callback code after timer finished
},interval); //sets the timer timer
}
and you invoke using
afterTimer('<timername>string', <interval in milliseconds>int, function(){
your code here
});
참고URL : https://stackoverflow.com/questions/1472705/resetting-a-settimeout
'Programing' 카테고리의 다른 글
Java 8에서 스트림을 캐스트 할 수 있습니까? (0) | 2020.06.22 |
---|---|
루비에서 클래스의 모든 자손을 찾으십시오. (0) | 2020.06.22 |
Vim으로 Git 커밋 메시지를 입력 할 때 발생하는 문제 (0) | 2020.06.21 |
CoffeeScript에서 댓글을 어떻게 작성합니까? (0) | 2020.06.21 |
어셈블리 'mscorlib에서'System.Runtime.CompilerServices.ExtensionAttribute '유형을로드 할 수 없습니다. (0) | 2020.06.21 |