(я смотрел на все подобные вопросы/ответы, но ни один из них не решить мою проблему.)JavaScript clearTimeout не работает
Код:
var timeoutHandle;
function showLoader(show) {
if (show) {
$('.loader').html('Loading...');
$('.loader').show();
timeoutHandle = setTimeout(function() {
if ($('.loader').is(':visible')) {
$('.loader').html('Still loading...');
}
}, 15000);
}
else {
$('.loader').hide();
clearTimeout(timeoutHandle);
}
}
Функция AJAX просто вызывает showLoader(true)
перед вызовом сервер, а затем showLoader(false)
после результата. Я все еще иногда вижу изменение текста с «Загрузка ...» на «Загрузка по-прежнему ...» задолго до 15 секунд, так что поток таймера все еще работает. Что-то не так с кодом выше? Или, может быть проблема с другим кодом ..
редактировать: Я должен добавить, что showLoader(true)
можно назвать снова (и снова) до ответа от сервера
Что такое функция, которая вызывает «showLoader»? Могу ли я увидеть этот код? –