我有一个给定的要处理的项目集合;每个项目都必须等待前一个项目的完成。
通过项目集合,我的意思是一个整数值数组。
通过“处理”,我的意思是对 HTTP 服务器进行 POST,传递每个数组元素的整数值。
我发现了一些看起来像我正在寻找的东西:doSynchronousLoop.js,但我想知道是否有其他选择。
我有一个给定的要处理的项目集合;每个项目都必须等待前一个项目的完成。
通过项目集合,我的意思是一个整数值数组。
通过“处理”,我的意思是对 HTTP 服务器进行 POST,传递每个数组元素的整数值。
我发现了一些看起来像我正在寻找的东西:doSynchronousLoop.js,但我想知道是否有其他选择。
如果您的网站在执行请求时可能会暂停渲染,这里有一个使用jQuery的解决方案:
// process 5 items
for (var i = 0; i< 5; i++) {
// ajax request done with jquery
$.ajax({
async: false, /* this makes it execute synchronously */
url: "the url to handle item #i",
type: "POST",
success: function(msg) {
// process data for item #i
}
})
}
编辑:您也可以异步解决它:
items = [put your items here]
current_item = 0
function processItem() {
if (current_item == items.length) {
// list processing finished
return;
}
$.ajax({
async: true,
url: "the url to handle item #current_item",
type: "POST",
success: function(msg) {
// process data for item #current_item
processItem();
current_item++;
}
})
}
不要错过将变量放在作用域中,我只是将它们放在全局作用域中以使示例更易于理解。
另请参阅文档:jQuery.ajax