我目前正在开发一个spring / backbone js app。我正在对服务器进行ajax调用。对于少量数据,一切都按预期工作,但是当我尝试处理该mysql表中的数据中的所有数据时,它至少需要2分钟,服务器可能需要10分钟以上才能处理它并发送响应。它发送与小数据集相同的数据(布尔值以了解处理是否成功)但在chrome控制台中我没有看到任何响应,并且ajax成功处理程序没有被调用。
我认为这是超时问题,但即使我给出了一个很大的超时值(例如,99999999999),那么也没有调用成功处理程序和错误处理程序。这是代码示例。当" allDistricts"是的,服务器处理所有数据,只有当我提供一些逗号分隔的值来处理时才会出现问题。我真的很感激帮助找出这个。
$("#update-summary").off("click.updateSummary").on("click.updateSummary",function(){
$("#update-summary").prop("disabled",true);
var allDistricts =$("#all-districts").is(":checked");
var districtIds = [];
if(!allDistricts){
var districtIdsInput = $("#districtId").val().split(',');
districtIds = districtIdsInput.map(function(districtId){
return districtId.trim();
}).filter(function(districtId){
if(districtId){
return districtId;
}
});
if(!districtIds.length){
return;
}
for(var i =0 ;i < districtIds.length;i++){
if(parseInt(districtIds[i])!=districtIds[i]){
$(".update-district-summary-status-message").text("Please enter valid district IDs");
setTimeout(function(){
$(".update-district-summary-status-message").text("");
},3000);
return;
}
}
}
$(".update-district-summary-status-message").text("Processing");
$.ajax({
url:"/secure/updateDistrictSummary",
timeout:9999999999999,
data:{
dIds:districtIds,
all:allDistricts
}}).fail(function(error){
console.log(error);
}).done(function(response){
$("#update-summary").prop("disabled",false);
if(response.status===true){
$(".update-district-summary-status-message").text("Updated Successfully for all districts");
}else if(response.status === false){
$(".update-district-summary-status-message").text("Update UnSuccessful for all districts");
}else{
var resultString = response.failed.slice(1).reduce(function(previous,current){
return previous+" ,"+current;
},response.failed[0]+"");
$(".update-district-summary-status-message").text("Update UnSuccessful For district Id(s) - "+resultString);
}
setTimeout(function(){
$(".update-district-summary-status-message").text("");
},3000);
});
附上回应的截屏 - response time blank response