ajax请求时间太长,后台返回json,前台无反应。 1C

由于后台运算会花费较长时间(大概4、5分钟),这个时间一旦较长,再返回Json给页面时页面就没反应了。
``
$.ajaxFileUpload({
url : $(this).attr("action"),
secureuri : false,
formObj : $(this),
append_data : {
'datemonth' : datemonthImport
},
dataType : 'json',
async : false,
error : function(data, status) {
if (data) {
alert(data.responseText);
removeShadeDiv();
}
},
success : function(info) {
alert(info.data);
showGrid();
query(true);
$("#datemonthImport").val("");
$("#datemonthSpanImport").text("");
removeShadeDiv();
}
});

后台处理大概4、5分钟之后后台就会返回Json,但返回后前台没有反应,等了20分钟,弹出超时。  如果后台在较短时间内返回Json,例如一两分钟,那么前台是有反应的。。。怎么解决这种超时问题啊  。

而且在Google浏览器Chrome 4分半 还是会接收到,但是在IE11就没有任何反应。

7个回答

给里面加一个参数:timeout:100000
单位是毫秒

kungc1
LinCyj 可以设置超时时间settimeout10000
6 个月之前 回复
lzjjim
lzjjim 回复qq_33933332: 同样的问题。。怎么解决的,研究好久不得其解,请指教,谢谢
大约 2 年之前 回复
qq_33933332
qq_33933332 非常感谢,解决了问题
接近 3 年之前 回复

尽可能的优化后台啊,这么久,等得花儿都谢了

@francislpx : 导入3万条数据,每条数据后台都需要查询判断,最后还需要插入表中,而且这个时间可以接受。

@cnxieyang 加过了,这个只是超时,后台处理正确,我想要的是处理成功多少,失败多少。如果加了timeout,就跳到error里面了。而且Google就可以接收到返回信息。

那没办法,去优化sql吧,索引加上。 查询多的数据弄个缓存啥的。第一次可能慢点,后面就好了

@觅夜的黑 : 后台sql 需要关联的表挺多,每天数据需要查一次缓存,查一次数据库,最后可能需要插入或修改,当然最后插入或修改是1000条提交一次。
我很想知道,为什么IE对服务器返回的信息没反应了呢,而且IE这条请求处于挂起状态。

我有个想法,可能并不能解决你的问题,但我觉得可以参考一下、你看你是要导入数据是吧,而且长时间内无返回导致连接超时,那我觉得如果是从用户体验这个角度用户八成可能认为这个系统当机了,我想你是不是可以考虑启动一个子线程去监听你已经存储的数量定时向前端返回,然后弄个进度条来显示存储状态,这样可以解决长时间无响应,对用户也比较友好。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问