显示ajax加载指示器不是立即但延迟后

时间:2009-04-12 09:37:40

标签: jquery ajax

我当前的网络应用程序项目大量使用ajax调用。他们中的大多数都很快并几乎立即做出反应。因此,无需一直显示ajax加载程序。但是当ajax调用花费的时间超过250ms(左右)时,我想显示一个ajax加载器。否则,用户可能会感到困惑,并一遍又一遍地点击链接。 :)

如何使用jQuery实现这一目标?

3 个答案:

答案 0 :(得分:4)

我之前没有使用过jQuery的经验,但为了实现一些代码执行的简单延迟,只需使用:

setTimeout ("foo()", 250);

其中foo()是负责加载... 指示的函数。

答案 1 :(得分:2)

您可以使用Javascript计时器在250ms后触发显示“loading ...”消息吗?

ajaxSend()上激活它,并在ajaxComplete()上禁用它(如果需要,则清除'loading ...'消息),因此对于您所做的任何Ajax调用,实现应该是透明的。

答案 2 :(得分:1)

var activity = false;
$("#loadingIndicator").ajaxStart(function() {
    activity = true;
    window.setTimeout(function() {
        if (activity) {
            //alert('activity');
            $("#loadingIndicator").show();
        }
    }
    , 700);
});
$("#loadingIndicator").ajaxStop(function() {
    activity = false;
    $(this).hide();
});