如何使用ajax连续加载多个文件?

时间:2017-02-21 16:35:46

标签: javascript jquery ajax

我有一个包含大约200万条记录的大型文本文件,当我用ajax加载它需要花费很多时间时,我想将它拆分并连续加载拆分文件。

Successive ajax loads

我使用此代码加载我要拆分的单个大文件

$.ajax({
    url: "singleLargeFile.csv",
    async: true,
    success: function () {
        process();
        },
    error: function(e) {
        var errorMsg = e? (e.status + ' ' + e.statusText) : "";
        console.log(errorMsg);
        },
    dataType: "text"
    });

有没有办法加载多个文件,加载后每个文件都会触发其回调和加载下一个文件?

由于

1 个答案:

答案 0 :(得分:0)

实际上jquery中有一个函数$.when()我用它是这样的:

var loadFile1 = $.ajax({
    url: "smallerFile1.csv",
    async: true,
    success: function () {
        process1();
        },
    error: function(e) {
        var errorMsg = e? (e.status + ' ' + e.statusText) : "";
        console.log(errorMsg);
        },
    dataType: "text"
   });


$.when(loadFile1).then(function(){
    var loadFile2 = $.ajax({
        url: "smallerFile2.csv",
        async: true,
        success: function () {
            process2();
            },
        error: function(e) {
            var errorMsg = e? (e.status + ' ' + e.statusText) : "";
            console.log(errorMsg);
            },
        dataType: "text"
        });
    });

现在,在加载第一个文件然后触发第二个加载时执行process1,依此类推