jquery ajax timeout问题。要崩溃了,搞了5天还没搞定。

心如刀割 2013-05-10 05:52:27
function tab3_nextStep(){
openWinarr(3);//这个是等待提示框,锁住屏蔽的。
var options = { 
url:'importData!doCalResFunc.action', 
type:'POST',
dataType:'json',
async:true,
timeout:0,//0是没有时间显示
success:function(data){
window.parent.leftFrame.setLeftTab(4);
window.location.href = 'selectRule.action';
},
error:function(XMLHttpRequest, textStatus, errorThrown)
{
alert('error');
alert(XMLHttpRequest);
alert(textStatus);
alert(errorThrown);
alert(XMLHttpRequest.readyState);
window.location.href = 'importData!initImport.action';
}
}; 
$('#importForm').ajaxSubmit(options);
}

url:'importData!doCalResFunc.action' //这个处理时间比较长,根据数据量来的,我现在的数据大概15分钟,但是每次运行到10分钟的时候就直接error了,我看了后台日志,importData!doCalResFunc.action这个逻辑还是在处理的,根本就没有完成,为什么就直接跳出来了??
而且XMLHttpRequest.readyState是4,4是已完成,但是后台根本没完成啊,怎么就跳出来了。errorThrown报的是proxy timeout。
后台程序没有问题,error以后后台还在继续运行,直到程序结束。就是前端提前error!
如果我用数据量小的,比如一两分钟的就没问题啊。怎么回事啊??
...全文
1722 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
小葫芦 2013-05-13
  • 打赏
  • 举报
回复
1,timeout有可能是socket链接的时间到了,看看服务器配置的socket timeout时间。 2,既然后台方法时间如果长,是否考虑后台采用缓存,前台采用ajax轮询的方式实现。
心如刀割 2013-05-13
  • 打赏
  • 举报
回复
引用 4 楼 yktd26 的回复:
如果用的tomcat可以试试更改你Connector 的connectionTimeout 和 keepAliveTimeout这两个值,其他的服务器也有类似的设置
这两个参数我都设置了,没有用。 现在我也只能用3楼所说的长轮询方法了。。
yktd26 2013-05-10
  • 打赏
  • 举报
回复
如果用的tomcat可以试试更改你Connector 的connectionTimeout 和 keepAliveTimeout这两个值,其他的服务器也有类似的设置
  • 打赏
  • 举报
回复
1,timeout有可能是socket链接的时间到了,看看服务器配置的socket timeout时间。 2,既然后台方法时间如果长,是否考虑后台采用缓存,前台采用ajax轮询的方式实现。
小丑哥_V5 2013-05-10
  • 打赏
  • 举报
回复
请参考我的基于spring,security,struts的开源项目 http://blog.csdn.net/shadowsick
OrpheusWen 2013-05-10
  • 打赏
  • 举报
回复
慢慢享受吧,这就是框架的好处。建议改为mootools.

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧