gpt4 book ai didi

javascript - 使用 jQuery Ajax 进行批处理

转载 作者:行者123 更新时间:2023-11-27 23:40:05 30 4
gpt4 key购买 nike

我在 JavaScript 中有一个数组 jobs ,想要发送到服务器端进行一些处理,由于它是一个非常大的数组,为了避免超时,我将其切成小块,例如较小的工作

var chunk= 50;
for (var i=0; i<jobs.length; i+=size) {
var smallerJobs = jobs.slice(i,i+size);

$.post( "server.php", { jobs: smallerJobs })
.done(function( data ) {
// Show the server result to client
});
}
}

上面的代码可以工作,但是,由于 post 在 JavaScript 中是异步的,而不是使用 async: false,如何使上面的代码顺序运行呢?即与数组 jobs 的顺序相同并避免 DOS 服务器?

最佳答案

您可以在上一个帖子查询成功后运行下一个帖子查询。将您的 post 调用转换为一个函数,在成功事件时,它首先对数据执行您想要的任何操作,然后使用下一项再次递归调用该函数。

类似于:

function sequentialQuerying(jobArr, currJob){

if(currJob == jobs.length){
return;
}else{
var smallerJobs = jobArr.slice(currJob, currJob+size);
$.post("server.php", {jobs: smallerJobs})
.done(function(data){
//do something with the data if you want
sequentialQuerying(jobArr, currJob += size);
});
}
}

关于javascript - 使用 jQuery Ajax 进行批处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33759560/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com