【问题标题】:Faux Timeout Triggers with JavaScript/jQuery & AJAX使用 JavaScript/jQuery 和 AJAX 的虚假超时触发器
【发布时间】:2010-12-05 23:29:21
【问题描述】:

在 jQuery.ajax 中,我们有幸以毫秒为单位设置超时,并有一个错误回调来处理该超时。

但是,有些人只是连接缓慢,耐心不足。我想要做的只是显示一条消息,说明“这比平时花费的时间更长”。

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

【问题讨论】:

    标签: javascript jquery ajax timeout


    【解决方案1】:

    好的,这很简单。

    我需要做的只是设置一个独立的 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
        }
    });
    

    【讨论】:

    • 这仅适用于一个 ajax 请求,但不适用于某些请求缓慢而有些请求很快的智能手机...我认为您想要比这更准确..
    • 这很好,因为它不适用于智能手机 - 它是智能手机无法处理的更大应用程序的一部分。这是一个独立的、模块化的 AJAX 请求,因此将是唯一一个正在运行的请求。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-20
    • 2014-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多