Я хочу, чтобы этот интервал в error
обработчике не запускался повторно. Возможно ли это, и если да, то как?
// example code
$(document).on('ready',function(){
setInterval(updateDiv,3000);
});
function updateDiv(){
$.ajax({
url: 'getContent.php',
success: function(data){
$('.square').html(data);
},
error: function(){
$.playSound('oneday.wav');
$('.square').html('<span style="color:red">Connection problems</span>');
// I want to stop it here
}
});
}
javascript
jquery
html
setinterval
Хенрик Петтерсон
источник
источник
Ответы:
Вам нужно установить возвращаемое значение
setInterval
переменной в пределах области действия обработчика кликов, а затем использоватьclearInterval()
следующее:источник
setTimout()
который запускается только один разИспользуйте переменную и вызовите,
clearInterval
чтобы остановить это.источник
Вы должны присвоить возвращаемое значение
setInterval
функции переменнойа затем
clearInterval(interval)
снова очистите его.источник
ИСПОЛЬЗУЙТЕ это я надеюсь помочь вам
источник
мы можем легко остановить установленный интервал, вызвав clear interval
источник
setInterval
что утечка может происходить бесконечно - без привязки var, чтобы контролировать это. 2-й вы не понимаетеthis
, так какthis
это не временной интервал. Если бы вы использовали, уTypeScript
вас были бы проблемы:No overload matches this call.Overload 1 of 2, '(intervalId: Timeout): void', gave the following error: Argument of type 'this' is not assignable to parameter of type 'Timeout'.
источник