Php 服务器阻塞并行ajax请求

Php 服务器阻塞并行ajax请求,php,jquery,ajax,Php,Jquery,Ajax,情况是,我正在使用API获取一些数据并更新我的数据库。我想向用户展示有关更新的信息 我的ajax请求是这样的 $.ajax({ url: '<?php echo base_url() ?>add_products/', data: "store_id="+store_id, type: 'POST', dataType: 'json', async : true, success: function(response) {

情况是,我正在使用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:“添加产品/”,
数据:“存储id=”+存储id,
键入:“POST”,
数据类型:“json”,
async:true,
成功:功能(响应){
如果(response.result==“success”){
//一些数据
}否则{
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();
            }
        }
    });
$.ajax({
url:“获取产品进度/”,
数据:“存储id=”+存储id,
键入:“POST”,
数据类型:“json”,
async:true,
成功:功能(响应){
如果(response.result==“success”){
控制台日志(响应);
}否则{
genError();
}
}
});
我没有使用任何php会话。我传递从数据库获取值的存储id。我想发送一个添加产品的请求,另一个请求检查添加了多少产品

问题是第一次请求添加产品时,get progress调用没有进行。只有在添加产品请求完成后,才会调用Get progress。我希望它们是平行的


我发现它的服务器有问题。服务器阻止第二个请求,直到第一个请求完成。那么,当ajax请求完成并相互独立时,如何让服务器返回ajax请求呢

您可以在时使用
$


例如:

$.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();
            }
        }
   });
});
$。什么时候(
$.ajax({
url:“添加产品/”,
数据:“存储id=”+存储id,
键入:“POST”,
数据类型:“json”,
async:true,
成功:功能(响应){
如果(response.result==“success”){
//一些数据
}否则{
genError();
}
}
});
).然后(函数(){
$.ajax({
url:“获取产品进度/”,
数据:“存储id=”+存储id,
键入:“POST”,
数据类型:“json”,
async:true,
成功:功能(响应){
如果(response.result==“success”){
控制台日志(响应);
}否则{
genError();
}
}
});
});

你所说的并行是什么意思?Ajax调用是异步的,我的意思是当一个添加产品的请求正在进行时,不会执行getprogress。它已被阻止,仅在添加产品请求完成后进行。我已尝试$。当。当您有不同的呼叫,但只有一个回拨时使用。我的情况是,有一个单一的电话与,没有一个单一的结果。两者都有不同的结果。when对此无效。@JunaidAtique我不太确定您想用
$实现什么目标。当
时,您是否尝试过
延迟.done()
?或
.ajaxComplete()
?正常。我得到了答案。问题在于php会话。我已经初始化了它。但当我将它从全局中移除,并将它与每个控制器分开时,它就工作了。谢谢你抽出时间。