0
我有一个简单的函数来处理行数据的提交(每个循环提交一次)。 我不会详细介绍该函数主要用于什么,但这里是一个简短的总结: 我还循环了很多数据,并且在每一个我称之为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后,提出一些100+之后)。我不确定这是因为互联网连接速度缓慢,但我注意到在萤火虫上使用控制台时,当控制台提交停止时,它仍显示Ajax正在尝试su提交,但从未完成。并没有显示javascript错误。
如果Ajax需要很长时间才能完成提交(可以说它已停留近5分钟)并使用.abort()
再试一次,有没有办法提取?
谢谢。
谢谢我会试试看。 – Alex
嗨Maxum,我试着超时,出于某种原因客户开始遇到更多的问题,因为这一点。 ajax提交被卡住的问题得到了解决,但由于某种原因,它几乎在每次提交之后都开始提交,并且直到浏览器崩溃后才升级。我把另一个修复程序(一个重试按钮),将强制当前ajax提交停止并再次尝试。谢谢您的帮助。 – Alex
如果不会有任何更多的建议,我会接受你的答案作为正确的答案,因为它确实解决了ajax提交被卡住的问题,但之后发生的问题与我请求的问题无关。 – Alex