我有一个页面,其中显示了日志文件,我希望这些日志文件使用户能够选择和删除。删除是通过AJAX请求完成的,其中通过参数发送每个删除日志的ID。
问题是在某些情况下有数百个日志,在这种情况下,AJAX请求似乎失败了。我想是因为通过参数发送的数据太多了。我尝试将AJAX请求分解为多个部分,但仅发送第一个请求,然后所有其他请求在Chorme中显示为“已取消”。以下是我的代码:
var logFiles = [];
function deleteLogBatch() {
if (logFiles.length == 0)
return false;
if (logFiles.length > 10)
var elements = 10;
else
var elements = logFiles.length;
var params = 'action=deletelog';
for (var i = 0; i < elements; i++) {
params += '&lf' + i + '=' + escape(logFiles.shift());
}
$.ajax({
type: "POST",
url: './ajax/logs.php',
data: params,
success: function(response) {
checkResponse(response);
deleteLogBatch();
}
});
}
$('body').on('click', '#confirm-log-delete', function(event) {
event.preventDefault();
$('.select-log').each(function() {
if ($(this).is(":checked")) {
logFiles.push($(this).attr('id'));
}
});
deleteLogBatch();
}
对于为什么会发生这种情况以及执行此操作的正确方法的任何帮助,将不胜感激。
答案 0 :(得分:0)
您应该使用异步ajax调用
$.ajax({
type: "POST",
url: './ajax/logs.php',
async: true,
data: params,
success: function(response) {
checkResponse(response);
deleteLogBatch();
}
});
它不会等待上一个ajax调用