2

ビジー インジケータを表示できるようになるまでの時間を指定することはできますか?

ビジー インジケーターのコードは非常に単純です。

jQuery.ajaxSetup( {
    beforeSend:function ()
    {
        jQuery( "#busy-indicator" ).show();
    }, complete:function ()
    {
        jQuery( "#busy-indicator" ).hide();
    }
} );

しかし、多くの場合、Ajax リクエストは表示されるインジケーターよりも高速であるため、少なくとも 1 秒かかるリクエストに対して表示したいのですが、可能ですか? または、それを行う方法を知っていますか?

4

2 に答える 2

7

これはトリックを行います:

var timeout; 
jQuery.ajaxSetup( {
    beforeSend:function ()
    {
        if (timeout) { clearTimeout(timeout); }
        timeout = setTimeout(function() {
            jQuery( "#busy-indicator" ).show(); 
        }, 1000);
    }, 
    complete:function ()
    {
        if (timeout) { clearTimeout(timeout); } 
        jQuery( "#busy-indicator" ).hide();
    }
});
于 2012-07-23T10:00:06.230 に答える
2
jQuery.ajaxSetup( {
    beforeSend:function ()
    {
        $( "#busy-indicator" ).stop(1,0).hide().delay(1000).show();
    }, 
    complete:function ()
    {
        $( "#busy-indicator" ).stop(1,0).hide();
    }
});

これもうまくいきませんか?

于 2012-07-23T10:37:29.643 に答える