Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jquery有两个超时循环_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript jquery有两个超时循环

Javascript jquery有两个超时循环,javascript,jquery,ajax,Javascript,Jquery,Ajax,我正在编写一个脚本,该脚本将把ajax帖子发送到另一个页面,我需要在发送ajax请求之前进行两个for循环,其中一个发送成功,但在进行另一个循环时,它会同时发送所有请求并关闭服务器: $("#me").on("click", function (event) { event.preventDefault(); var lines = $('#emails').val().split('\n'); var sendToSe

我正在编写一个脚本,该脚本将把ajax帖子发送到另一个页面,我需要在发送ajax请求之前进行两个for循环,其中一个发送成功,但在进行另一个循环时,它会同时发送所有请求并关闭服务器:

     $("#me").on("click", function (event) {
                event.preventDefault();

       var lines = $('#emails').val().split('\n');


       var sendToServer = function(lines, index){
       item = lines[index];
       if (item.trim().length != 0){

         for(idd = 1; idd <= 100; idd++){  
         $.ajax({
           type: 'POST',
           url: 'inc/save.php',
           data: { users : lines[index] , id : idd  },
           success: function(msg){
                $('#result').append(msg);


             if (index < lines.length) {
               setTimeout(
                 function () { sendToServer(lines, index+1); },
                 5000 // delay in ms
               );
             }
           }


         });

         }

       }
       else { sendToServer(lines, index+1); }
    };

    sendToServer(lines, 0);




            });
$(“#me”)。在(“单击”)上,函数(事件){
event.preventDefault();
var line=$('#emails').val().split('\n');
var sendToServer=函数(行、索引){
项目=行[索引];
如果(item.trim().length!=0){

对于(idd=1;idd此代码将在每次请求之间延迟指定的时间量

$("#me").on("click", function (event) {
    event.preventDefault();

    var lines = $('#emails').val().split('\n');
    var requestDelay = 5000;
    var sendToServer = function (index) {
        item = lines[index];
        if (item.trim().length != 0) {
            var max = 100;
            var sendOne = function (idd) {
                $.ajax({
                    type: 'POST',
                    url: 'inc/save.php',
                    data: {
                        users: lines[index],
                        id: idd
                    },
                    success: function (msg) {
                        $('#result').append(msg);
                        if (idd <= max) {
                            setTimeout(sendOne, requestDelay, idd + 1);
                        } else {
                            if (index < lines.length) {
                                setTimeout(sendToServer, requestDelay, index + 1);
                            }
                        }
                    }
                });
            };
            sendOne(1);
        }
    };
    sendToServer(0);
});

此代码将在每次请求之间延迟指定的时间量

$("#me").on("click", function (event) {
    event.preventDefault();

    var lines = $('#emails').val().split('\n');
    var requestDelay = 5000;
    var sendToServer = function (index) {
        item = lines[index];
        if (item.trim().length != 0) {
            var max = 100;
            var sendOne = function (idd) {
                $.ajax({
                    type: 'POST',
                    url: 'inc/save.php',
                    data: {
                        users: lines[index],
                        id: idd
                    },
                    success: function (msg) {
                        $('#result').append(msg);
                        if (idd <= max) {
                            setTimeout(sendOne, requestDelay, idd + 1);
                        } else {
                            if (index < lines.length) {
                                setTimeout(sendToServer, requestDelay, index + 1);
                            }
                        }
                    }
                });
            };
            sendOne(1);
        }
    };
    sendToServer(0);
});

我猜服务器不喜欢一次处理100个请求?这里是示例(100)。最终的代码将有1000个请求,当然服务器不能同时处理1000个请求,所以我需要一个接一个地处理,每个请求之间都有超时。我猜服务器不喜欢一次处理100个请求?这里是示例(100)最后的代码将有1000个请求,当然服务器不能同时处理1000个请求,所以我需要一个接一个地处理它,每个请求之间都有超时one@MohamedAldanaf-我被打断了(现实生活中遇到了障碍:p),我要发布一篇“现代”非常整洁的代码版本-如果你愿意,我可以添加它。如果你愿意,我会感谢你:)@MohamedAldanaf-我被打断了(现实生活中遇到了障碍:p),我打算发布一个非常整洁的“现代”代码版本-如果你愿意,我可以添加它。如果你愿意,我会感谢你:)