(szukałem w ogóle podobne pytania/odpowiedzi, ale żaden z nich nie rozwiązuje mojego problemu.)JavaScript clearTimeout nie działa
kodu:
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);
}
}
Funkcja AJAX po prostu wywołuje showLoader(true)
przed wywołaniem serwer, a następnie showLoader(false)
po wyniku. Ciągle widzę, że tekst zmienia się z "Ładowanie ..." na "Wciąż ładuję ..." na długo przed 15 sekundami, więc wygląda tak, jakby wątek z timerem wciąż działał. Czy coś jest nie tak z powyższym kodem? Lub może być problem z innym kodem ..
edit: muszę dodać, że showLoader(true)
można ponownie wywoływany (i znowu) przed odpowiedź od serwera
Jaka jest funkcja, która nazywa "showLoader"? Czy widzę ten kod? –