jQuery $ .Ajax需要很长时间才能做出回应

时间:2012-05-31 10:38:17

标签: jquery

我有一个简单的函数来处理行数据的提交(每个循环一次提交)。 我不会详细介绍该函数主要用于什么,但这里有一个简短的总结: 我循环了很多数据,并在每个循环上调用upload()具有ajax函数的函数。 Ajax将数据作为帖子提交,然后提交成功调用insert()函数,该函数继续循环并再次调用upload(),直到处理完所有数据。

upload: function( data ){
    var obj = this;
    if( data.post_code && data.post_code.length > 0 ){
        if( ajax_insert ){
            ajax_insert.abort();
        }

        try{
            ajax_insert = $.ajax({
                type    : 'POST',
                url     : '/submission/my-function?ajax',
                data    : $.param( data ),
                success : function( response ) {
                    obj.insert();
                },
                error: function(msg){
                    setInterval(function(){
                        obj.insert();
                    }, 2000);
                }
            });
        }catch(err){
            ajax_insert.abort();
            obj.insert();
        }
    }else{
        this.insert();
    }
}

一些客户遇到的问题是在一段时间后停止提交(一些人在60岁以后提交了一些)。我不确定这是因为互联网连接缓慢,但我注意到使用firebug上的控制台是因为当提交在控制台中停止时,它仍然显示Ajax正在尝试提交但从未完成。并且没有显示javascript错误。

如果Ajax花了很长时间来完成提交(让我们说它已经停滞了差不多5分钟)并使用.abort()再试一次,有没有办法接受?

感谢。

1 个答案:

答案 0 :(得分:1)

你可以使用..

  timeout: 10000, //time in milliseconds. 

这至少会抓住一个停滞不前的剧本。