多个请求同时

时间:2015-09-11 10:17:52

标签: php ajax multithreading

我正在通过PHP进行在线机票预订。问题是速度如此之低。我必须按顺序向航空公司发送请求。

我正在使用Ajax到航空公司1,获得响应然后完成显示结果给用户,然后向航空公司请求2,得到响应然后显示结果....

与三家航空公司合作,需要30秒。我想知道我是否有10家航空公司,这太可怕了。

所以我想知道如何解决这个问题。

我搜索Ptheads但也许这不是一个好的解决方案。

感谢有经验的人。

这是我的代码:

在javascript中

  $(document).ready(function () {
     var base = $('base').attr('href');

    //When finished loading ticket search result page
    //I call three ajax to my php script, this script send request to airlines
    //And return result here.
    //First airlines call
    $.ajax({
        url: base + 'flight/jetstar',
        success: function (data) {
            data = $.parseJSON(data);

            //This will show result to user (function had defined before)
            $.each(data, function (key, item) {
                all_flight[key] = item;
                item.sort(compare);
                listFlights(item, key);
            });
        }
    });


   //And next airlines
    $.ajax({
        url: base + 'flight/vietjet',
        success: function (data) {
            data = $.parseJSON(data);
            $.each(data, function (key, item) {
                all_flight[key] = $.merge(all_flight[key], item);
            });
            $('.departure_list').html('');
            $.each(all_flight, function (key, flight) {
                flight.sort(compare);
                listFlights(flight, key);
            });
        }
    });

    //And Final
    $.ajax({
        url: base + 'flight/vna',
        success: function (data) {
            if (data != '0') {
                data = $.parseJSON(data);
                $.each(data, function (key, item) {
                    all_flight[key] = $.merge(all_flight[key], item);
                });
                $('.departure_list').html('');
                $.each(all_flight, function (key, flight) {
                    flight.sort(compare);
                    listFlights(flight, key);
                });
            } else {

                var p = '<p class="text-center">No ticket found</p>';
                var dbody = $('.departure_list tbody tr');
                if (dbody.length == 0) {
                    $(p).insertBefore('.departure_list');
                }

            }
        }
    });

});

PHP只使用cURL for rest api

0 个答案:

没有答案