dongpo0409 2014-05-28 08:39
浏览 141

服务器阻塞并行ajax请求

The situation is I am using an API to fetch some data and update my database. I want to show user about the update.

So my ajax request is something like this.

$.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();
        }
    }
});

and I am trying to get the process update like this.

    $.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();
            }
        }
    });

I am not using any php session. I pass store id which fetch values from DB. I want to send 1 request that add products and other one to check how many products are added.

The problem is one 1st request of adding product is made, the get progress call does not progress. Get progress call is only made after the add product request is completed. I want them to be parallel.

I have found out that its server problem. Server blocks the second request until first request is completed. So how can I make the server return an ajax request when it is complete and make independent of each other.

  • 写回答

1条回答 默认 最新

  • douchungu0859 2014-05-28 09:13
    关注

    You can use $.when.

    Here is a good blog post about it.
    Docs.

    Example:

    $.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();
                }
            }
       });
    });
    
    评论

报告相同问题?

悬赏问题

  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 C#调用python代码(python带有库)
  • ¥15 矩阵加法的规则是两个矩阵中对应位置的数的绝对值进行加和
  • ¥15 活动选择题。最多可以参加几个项目?
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?
  • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)
  • ¥20 怎么在stm32门禁成品上增加查询记录功能
  • ¥15 Source insight编写代码后使用CCS5.2版本import之后,代码跳到注释行里面