首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用jQuery设置ajax post的最大执行时间?

如何用jQuery设置ajax post的最大执行时间?
EN

Stack Overflow用户
提问于 2012-04-28 00:45:35
回答 4查看 32.2K关注 0票数 8

有没有一种方法可以指定到服务器的ajax post的最大执行时间,这样如果服务器没有响应,那么继续尝试10秒,然后继续执行其余的代码??

代码语言:javascript
复制
Function doajaxPost(){
    var returned_value="";

    // #############I NEED THIS CODE TO TRY TO POST THE DATA TO THE SERVER AND KEEP
    // #############TRYING FOR 10 SECONDS AND THEN CONTINUE WITH THE REST OF THE CODE.
        jQuery.ajax({
            url: 'ajaxhandler.php',
            success: function (result) {                               
                returned_value=result;
            },
            async: false
        });
    // ###################################################

    alert(returned_value);

    some other code
    .
    .
    .           
 }
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-04-28 00:48:55

使用timeout

代码语言:javascript
复制
jQuery.ajax({
    url: 'ajaxhandler.php',
    success: function (result) {                               
        returned_value=result;
    },
    timeout: 10000,
    async: false
});

但是,alert(returned_value);将在您的调用之后立即执行(不会等待调用完成)。

票数 21
EN

Stack Overflow用户

发布于 2012-04-28 00:48:54

JQuery接口文档介绍了如何设置超时。

http://api.jquery.com/jQuery.ajax/

虽然这里的其他答案是正确的,但学习自己检查文档比只知道这个答案更有价值。

票数 10
EN

Stack Overflow用户

发布于 2012-04-28 00:48:11

您可以为ajax请求设置超时值。

timeout

设置请求的超时时间(毫秒)。这将覆盖使用$.ajaxSetup()设置的任何全局超时。超时时间从发出$.ajax调用时开始;如果其他几个请求正在进行,并且浏览器没有可用的连接,则请求有可能在发送之前超时。在jQuery 1.4.x及更低版本中,如果请求超时,XMLHttpRequest对象将处于无效状态;访问任何对象成员都可能抛出异常。仅在Firefox中,脚本和3.0+请求不能通过超时取消;即使脚本在超时后到达,它也会运行。

下面是一个示例:

代码语言:javascript
复制
$.ajax({
   url: "ajaxhandler.php",
   ...
   timeout: 10000,
   ... 
});
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10354685

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档