jQuery - Ajax 呼び出しに 1 秒以上かかる場合にのみ読み込み画像を表示しますか? 質問する

jQuery - Ajax 呼び出しに 1 秒以上かかる場合にのみ読み込み画像を表示しますか? 質問する

Ajax 呼び出しに 1 秒以上かかる場合にのみ、「読み込み中...」アニメーションを表示することは可能ですか? 一部の Ajax 呼び出しは非常に高速ですが、読み込みアイコンが消えるまでのほんの一瞬だけ表示されます。私だけかもしれませんが、気が散ります。完全に削除したくはありません。何か提案はありますか? これが私のコードです -

    $('#loading').hide()
    .ajaxStart(function() {
        $(this).show();
    })
    .ajaxStop(function() {
        $(this).hide();
    });

<div id="loading">
    <img alt="Loading, please wait.." src="/content/images/spinner.gif" />
</div>

ベストアンサー1

コードをタイマー内に配置する必要があります:

var $loader = $('#loading'), timer;

$loader.hide()
    .ajaxStart(function()
    {
        timer && clearTimeout(timer);
        timer = setTimeout(function()
        {
            $loader.show();
        },
        1000);
    })
    .ajaxStop(function()
    {
        clearTimeout(timer);
        $loader.hide();
    });

おすすめ記事