延迟显示ajax加载指示器,而不是立即显示

5
我的当前Web应用程序项目大量使用ajax调用。其中大部分都很快,几乎立即响应。因此,一直显示ajax加载器是不必要的。但是,当ajax调用时间超过250毫秒(左右)时,我想显示一个ajax加载器。否则,用户可能会感到困惑,一遍又一遍地点击链接。 :)
有什么想法可以使用jQuery实现这个功能吗?
3个回答

4

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

setTimeout ("foo()", 250);

其中foo()函数负责加载指示loading...


还要注意,使用foo作为变量比使用字符串要快一些,因为如果使用字符串,它将被eval'ed:setTimeout(foo, 250); - moff
@moff 我喜欢那个建议,之前没试过,但从现在开始会试一下。 - Peter Perháč

2
你可以使用JavaScript计时器在250毫秒后触发,以显示“加载中…”的消息吗?
ajaxSend()上激活它,在ajaxComplete()上禁用它(如果需要,清除“加载中…”的消息),因此实现应对你进行的任何Ajax调用透明。

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();
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接