【问题标题】:Run function if jQuery.ajax waiting for respond long enough如果 jQuery.ajax 等待响应的时间足够长,则运行函数
【发布时间】:2014-07-04 15:56:00
【问题描述】:

我有一个简单的 ajax 请求的 jQuery 代码。

大多数时间不到一秒就能得到响应,所以我可以向用户展示结果。

但有时(大约 5% 的重新加载)需要几秒钟(我对此没意见,服务器有点忙)。

我想在超过 2 秒时显示“请稍候”文本。但不是在不到 2 秒的情况下(这样用户就不会被消息的快速显示/隐藏弄糊涂了)。

如何以最高效、最简单的方式实现?

当前的jQuery代码:

jQuery.ajax({
    url: "loadData.php",
    dataType: 'json',
    type: 'GET',
    success: function(result){
        showResultsToUser(result);
    }
});

【问题讨论】:

  • 是的。首先,我无法接受(我必须等待 5 分钟才能接受答案)。

标签: javascript jquery ajax timeout


【解决方案1】:

类似这样的:

var cancelMe = setTimeout(function() {
   $('#loading').show(); // assuming your loading element has the id "loading"
}, 2000); // show loading element in 2 seconds

jQuery.ajax({
    url: "loadData.php",
    dataType: 'json',
    type: 'GET',
    success: function(result){
        showResultsToUser(result);
        clearTimeout(cancelMe); // don't run if it hasn't run yet
        $('#loading').hide(); // hide the loading element if it's shown
    }
});

【讨论】:

    猜你喜欢
    • 2019-03-14
    • 1970-01-01
    • 1970-01-01
    • 2022-01-06
    • 1970-01-01
    • 1970-01-01
    • 2021-05-31
    • 2017-02-25
    • 2019-10-27
    相关资源
    最近更新 更多