情况是我使用API来获取一些数据并更新我的数据库。我想向用户显示更新。
所以我的ajax请求是这样的。
$.ajax({
url: '<?php echo base_url() ?>add_products/',
data: "store_id="+store_id,
type: 'POST',
dataType: 'json',
async : true,
success: function(response) {
if ( response.result == 'success') {
//some data
} else {
genError();
}
}
});
我试图让这个过程更新。
$.ajax({
url: '<?php echo base_url() ?>get_product_progress/',
data: "store_id="+store_id,
type: 'POST',
dataType: 'json',
async : true,
success: function(response) {
if ( response.result == 'success') {
console.log(response);
} else {
genError();
}
}
});
我没有使用任何php会话。我传递了从DB获取值的商店ID。我想发送1个添加产品的请求和其他1个请求来检查添加了多少产品。
问题是第1次添加产品的请求,获取进度调用没有进展。只有在添加产品请求完成后才能获取进度调用。我希望它们是平行的。
我发现它的服务器问题。服务器阻止第二个请求,直到第一个请求完成。那么如何让服务器在完成时返回一个ajax请求并相互独立。
答案 0 :(得分:0)
您可以使用$.when
。
Here is a good blog post about it.
Docs.
示例:
$.when(
$.ajax({
url: '<?php echo base_url() ?>add_products/',
data: "store_id="+store_id,
type: 'POST',
dataType: 'json',
async : true,
success: function(response) {
if ( response.result == 'success') {
//some data
} else {
genError();
}
}
});
).then(function() {
$.ajax({
url: '<?php echo base_url() ?>get_product_progress/',
data: "store_id="+store_id,
type: 'POST',
dataType: 'json',
async : true,
success: function(response) {
if ( response.result == 'success') {
console.log(response);
} else {
genError();
}
}
});
});