如何加快ajax调用从php文件中获取记录

时间:2015-02-19 11:59:24

标签: javascript php jquery ajax datatables

我正在尝试向php文件发送ajax调用,该文件一次以json编码格式返回1000条记录,我将其附加到表中。一切正常,但它需要很多时间,导致页面挂起。下面是我的js代码。

$(window).load(function() {
    for (i = 0; i < 31; i++)
    {
        $.ajax({
            type: "GET",
            url: "filters.php",
            data: {limit: 1000, start_from: (i * 1000)},
            success: function(response) {
                var array = JSON.parse(response);

                Object.keys(array).forEach(function(key) {
                    oTable.fnAddData([
                        array[key][1],
                        array[key][2],
                        array[key][3],
                        array[key][4],
                        array[key][5],
                        array[key][6],
                        array[key][7],
                        array[key][8],
                        array[key][9],
                        array[key][10],
                        array[key][11],
                        array[key][12],
                        array[key][13],
                        array[key][14],
                        array[key]['link']
                    ]);
                });
            },
            datatype: 'json'
        });
    }    
});

1 个答案:

答案 0 :(得分:0)

试试这个:

$(window).load(function() {
    for (i = 0; i < 31; i++)
    {
        setTimeout(500,function(){
            $.ajax({
                type: "GET",
                url: "filters.php",
                data: {limit: 1000, start_from: (i * 1000)},
                success: function(response) {
                    var array = JSON.parse(response);

                    Object.keys(array).forEach(function(key) {
                        oTable.fnAddData([
                            array[key][1],
                            array[key][2],
                            array[key][3],
                            array[key][4],
                            array[key][5],
                            array[key][6],
                            array[key][7],
                            array[key][8],
                            array[key][9],
                            array[key][10],
                            array[key][11],
                            array[key][12],
                            array[key][13],
                            array[key][14],
                            array[key]['link']
                        ]);
                    });
                },
                datatype: 'json'
            });
        });
    }
    });