javascript - 使用 JavaScript/jQuery 和 AJAX 模拟超时触发器

标签 javascript jquery ajax timeout

在 jQuery.ajax 中,我们可以设置以毫秒为单位的超时,并使用错误回调来处理该超时。

然而,有些人的连接速度很慢,缺乏耐心。我想做的只是显示一条消息,指出“这比平时花费的时间更长”。

jQuery 中的超时争论不能满足这一点,而 setTimeout() 则执行完全相同的操作。如何通过简单的时间检查来实现这一点?

最佳答案

好的,这很简单。

我所需要做的实际上是设置一个独立的 Timout,其中包含一个函数来显示我需要的任何消息。

您仍然可以长时间保留超时/错误回调。

var timeout = true;

timeout = setTimeout(function() {
    if (timeout) {
        $("#zendesk-dropbox-error").html("Contacting the Helpdesk is taking longer than usual, try submitting manually?");
    }
}, 9000);


// Call for a JSON return from the PHP script
$.ajax({ type: 'GET', url: http://www.example.com, dataType: 'json', cache: false, data: ({ a: 'b' }), timeout: 60000, 
    success: function(zendesk){
        timeout = false;
        // Code
    },error: function(objAJAXRequest, strError) {
        // Code
    }
});

关于javascript - 使用 JavaScript/jQuery 和 AJAX 模拟超时触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1554383/

相关文章:

javascript - 防止 'hashchange' 事件的默认行为

javascript - 页面加载时的 History.js getState()

javascript - 防止安装 PWA

javascript - 在 bootstrap 或其他 jquery 对话框中显示各种信息的最佳方式

jquery - 可以从 jQuery 调用捕获整个调用堆栈吗?

javascript - 如何向 AngularJS 中的现有 cookie 添加新值?

javascript - Firebase 动态链接 Rest API : Unknown name "socialMetaTagInfo"

javascript - 如何对使用ajax生成的具有相同类的所有文本框的值求和?

javascript - 在没有响应的情况下执行 python 函数 - Django

javascript - 管理 HTML5 DIV 大小