ajax“忙”指示符,但仅适用于较长的请求

时间:2012-07-23 09:55:55

标签: javascript jquery

是否可以指定我可以显示忙碌指示的时间?

繁忙指标的代码非常简单:

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

但是Ajax请求通常比出现指示器更快,因此我想显示它的请求,让我们说至少1秒,是否可能?或者你知道怎么做吗?

2 个答案:

答案 0 :(得分: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();
    }
});

答案 1 :(得分:2)

jQuery.ajaxSetup( {
    beforeSend:function ()
    {
        $( "#busy-indicator" ).stop(1,0).hide().delay(1000).show();
    }, 
    complete:function ()
    {
        $( "#busy-indicator" ).stop(1,0).hide();
    }
});

这不也有用吗?