我有一个必须请求数据库 (ajax) 的 javascript 代码。但是我发现插入是错误的,但是有正确的 sql 请求。所以我添加了一个关于哪个 ajax 请求的警报,以了解代码何时执行。
代码如下:
$.post("/kohana-v3.3.5/ajax/update_simulation", {
id_simulation: id_simulation,
nom_simulation: nom_simulation,
sol_simulation: sol_simulation,
station_simulation: station_simulation,
iteration_simulation: iteration_simulation,
scenario_simulation: scenario_simulation
}
, function (result) {
console.log(result);
alert('update');
});
$.post("/kohana-v3.3.5/ajax/delete_pousses", {id_simulation: id_simulation}, function (result) {
console.log(result);
alert('delete');
});
$(this).prev('div').find('table .formRows').each(function (i) {
alert('here');
if (cpt % 2 == 1) {
//interculture
var $tds = $(this).find('td option:selected'),
culture = $tds.eq(0).val(),
date = $tds.eq(1).text();
itk = null;
} else {
//culture
var $tds = $(this).find('td option:selected'),
culture = $tds.eq(0).val(),
itk = $tds.eq(1).val();
date = null;
}
$.post("/kohana-v3.3.5/ajax/insert_pousses", {
id_simulation: id_simulation,
culture: culture,
date: date,
itk: itk,
rang: cpt
}, function (result) {
console.log(result);
alert('insert');
}); //Fin du post
cpt++;
}); //Fin du each
每次我运行该代码时,警报的顺序总是不同的!有时是“insert update delete”,有时是“update, delete insert” ...
这是一个问题,因为如果删除是最后一个,插入将被删除。那么,这是正常的方式吗?我该如何解决?
最佳答案
javascript 可以异步执行 - 这就是为什么您的 ajax 请求并不总是以相同的顺序执行的原因。您可以将它们设置为 asnyc false(如此处 jQuery: Performing synchronous AJAX requests )或做出类似 promises ( https://api.jquery.com/promise/ ) 的操作以等待 ajax 调用完成。
问候
关于javascript - ajax请求的顺序总是不同的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37326084/