set Timeout 리셋
다음과 같은 것이 있습니다.
window.setTimeout(function() {
window.location.href = 'file.php';
}, 115000);
.click 기능을 통해 카운트다운 도중 카운터를 재설정하려면 어떻게 해야 합니까?
이 타임아웃에 대한 참조를 저장한 후 해당 참조를 호출할 수 있습니다.
// 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초 이내에 본문 요소를 클릭하지 않으면 배경색이 검은색으로 표시됩니다.
레퍼런스:
- https://developer.mozilla.org/en/DOM/window.clearTimeout
- https://developer.mozilla.org/En/Window.setTimeout
주의: set Timeout 및 clear Timeout은 ECMAScript 네이티브 메서드가 아니라 글로벌 창 이름 공간의 Javascript 메서드입니다.
시간 초과 "Timer"를 기억하고 취소한 다음 다시 시작해야 합니다.
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);
});
뭔가 그런 것 같아!
노드의 경우JS는 매우 간단합니다.
const timeout = setTimeout(...);
timeout.refresh();
문서에서:
timeout.timeout()
타이머의 시작 시각을 현재 시각으로 설정하고, 현재 시각으로 조정된 이전에 지정된 기간에 콜백을 호출하도록 타이머를 재조정합니다.이는 새 JavaScript 개체를 할당하지 않고 타이머를 새로 고칠 때 유용합니다.
하지만 브라우저에서는 동작하지 않습니다.setTimeout()
오브젝트가 아닌 숫자를 반환합니다.
이 타이머는 30초 후에 "Hello" 경보 상자를 표시합니다.단, 리셋타이머 버튼을 클릭할 때마다 timerHandle이 클리어되었다가 다시 설정됩니다.일단 발사되면 게임은 끝납니다.
<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>
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();
http://jsfiddle.net/ppjrnd2L/에서 실제로 일어나고 있는 일에 대한 자세한 예를 다음에 제시하겠습니다.
나는 이것이 오래된 실이라는 것을 알지만, 나는 오늘 이것을 생각해냈다.
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
}
를 사용하여 호출합니다.
afterTimer('<timername>string', <interval in milliseconds>int, function(){
your code here
});
$(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])} );
})();
});
타이머를 리셋하려면 타이머 변수를 설정하고 클리어해야 합니다.
$time_out_handle = 0;
window.clearTimeout($time_out_handle);
$time_out_handle = window.setTimeout( function(){---}, 60000 );
언급URL : https://stackoverflow.com/questions/1472705/resetting-a-settimeout
'programing' 카테고리의 다른 글
[]가 list()보다 빠른 이유는 무엇입니까? (0) | 2022.09.24 |
---|---|
@autowed bean은 다른 bean의 컨스트럭터에서 참조되는 경우 null입니다. (0) | 2022.09.24 |
컴파일 시 함수 파라미터 수 계산 (0) | 2022.09.24 |
Python의 집합에 값 추가 (0) | 2022.09.24 |
JavaScript에서 HTML 특수 문자를 피할 수 있습니까? (0) | 2022.09.24 |