(同様の質問/回答をすべて調べましたが、どれも私の問題を解決していません。)
コード:
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)
サーバーからの応答の前に、もう一度(そして何度も)呼び出すことができることを追加する必要があります