Ajax异步内部循环

时间:2014-08-07 10:38:43

标签: php jquery ajax asynchronous

我在PHP中使用dbase.dll将信息从dbase文件传输到MySQL。

我要传输150个文件。每个文件的名称在1000到5000之间。

我使用PHP来传输文件。但请求是在jquery中进行的:

var Files = [1544,1548,1548,..];

 $.each(Files, function(i,val){

        $.ajax({
            async: false,
            url: '../JC/Reaction.php?type=pes',
            type: 'POST',
            data: {SCADA: val},
            success: function(data){
                $('#Result').append(data);
            }  
        });    

    });

});

我必须将async设置为false才能正确完成此操作。

url'../JC/Reaction.php'获取val并为每个文件执行传输并回显:

echo $val.' - Done';

问题是我的浏览器崩溃或没有任何反应。我需要在浏览器中的'Result'div中显示来自php的'data': :

1544 - Done
1548 - Done
...

任何帮助都会很好!

1 个答案:

答案 0 :(得分:0)

<强>分辨

var ajaxQueue = $({});

$.ajaxQueue = function(ajaxOpts) {  

    ajaxQueue.queue(function(next) {
        ajaxOpts.complete = function() {       
            next();
        };

        $.ajax(ajaxOpts);
    });
};

    $.each(Files, function(i,val){

        $.ajaxQueue({
            async: true,
            url: '../JC/Reaction.php?type=pes',
            type: 'POST',
            data: {SCADA: val},
            success: function(data){

                $('#Result').append(data);
            }  
       }); 

    });