【问题标题】:Time out Ajax requests with jquery?使用 jquery 超时 Ajax 请求?
【发布时间】:2009-10-09 06:02:59
【问题描述】:

我认为您可以在 jquery 超时中设置 post 和 get 方法,但我想知道 jquery 是否有一个全局时间,就像它在 ajax 启动和停止时一样。

就像我想设置它,如果说 post 或 get 或某种 ajax 请求正在运行,它运行的时间超过 X 秒。出现弹出窗口或类似性质的内容,说“服务器很慢并且请求已超时”并终止该请求。

然后用户可以再试一次或做其他事情。

jquery 有这样的东西吗?

谢谢

【问题讨论】:

    标签: c# .net jquery asp.net-mvc ajax


    【解决方案1】:

    jQuery.ajax 函数是你想要的。它使您可以访问大量用于进行 AJAX 调用的选项。

    具体来说,您将要拨打类似于

    $.ajax({'complete': callbackFunction, 'url': 'foo/bar/', 'timeout': 5000, 'error': errorCallback});
    

    您感兴趣的两个选项是timeouterror。该函数的完整文档是here。这比使用更标准的 get/post 函数要多一些工作,但要灵活得多。

    error 函数与用于任何 jQuery AJAX 请求的标准回调非常相似。如果请求成功则调用回调,而当请求失败时(例如 404 错误,或遇到超时)则调用错误函数。您将使用错误函数向用户显示他们的请求已超时的消息。函数参数的完整文档(实际上,您可能不需要使用)可在 $.ajax 文档页面(之前链接)上找到。

    或者,您可以使用 jQuery.ajaxSetup 函数在每个 AJAX 调用上全局设置超时。它的参数与 jQuery.ajax 函数完全相同,所以你可以这样做:

    $.ajaxSetup({'timeout': 5000, 'error': errorCallback});

    好处是您可以继续使用jQuery.get/jQuery.post,但坏处是您必须做额外的工作才能使 AJAX 调用超时。

    【讨论】:

    • 酷我认为现在 ajaxSetup 是我想要的,否则我必须减少我所有的帖子。如果它成为问题,那么我可以转换。如果你在 ajaxSetup 和 $.ajax 中设置一个超时,会发生什么?哪一个会赢?还有不同的连接怎么样,比如我有一个 6mb 的连接,几乎我所有的 ajax 请求都需要大约 500 毫秒或更短的时间来完成。但是56K调制解调器怎么样。什么是安全的超时 10 秒?另外,我仍然不清楚“错误”的真正作用。
    • 如果您在 $.ajaxSetup 中使用超时,那么是的,您可以通过使用 $.ajax 来使用不同的值。老实说,我不能说任何一种权威的不同速度的合理响应时间是多少,但 10 秒似乎是一个不错的数字。我已经在答案中阐明了错误函数的用法。
    【解决方案2】:

    是的,jQuery 有一个“超时”属性(以毫秒为单位),您可以发送 $.ajax() 事件:

    http://www.bennadel.com/blog/1500-Catching-Timeout-Errors-With-jQuery-Powered-AJAX.htm

    $.ajax(
            {
                method: "get",
                url: "yourpage.php",
                dataType: "json",
                timeout: (3 * 1000), // 3 seconds
    
                success: function(){
                    //success code here
                },
    
                error: function( request, strError ){
                    //error code here
                }
            }
    );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-07
      • 1970-01-01
      • 2017-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-22
      相关资源
      最近更新 更多