连续的、非并发的jqueryajax帖子
我可能遗漏了一些明显的东西,但我似乎无法让我的AJAX帖子连续运行,而不是与jQuery并发运行连续的、非并发的jqueryajax帖子,jquery,ajax,post,Jquery,Ajax,Post,我可能遗漏了一些明显的东西,但我似乎无法让我的AJAX帖子连续运行,而不是与jQuery并发运行 ad_numbers是一个数字ID数组 $(ad_numbers).each(function() { ad_number = $.trim(this); if(!ad_number) { return true; } $.post('/fetch.php', { ad_number: ad_number }, function(data, textStatus) { $('
ad_numbers
是一个数字ID数组
$(ad_numbers).each(function() {
ad_number = $.trim(this);
if(!ad_number) { return true; }
$.post('/fetch.php', { ad_number: ad_number }, function(data, textStatus) {
$('#log').prepend('<p>' + data + '</p>');
});
});
$(ad_编号)。每个(函数(){
ad_编号=$.trim(此);
如果(!ad_number){返回true;}
$.post('/fetch.php',{ad_number:ad_number},函数(数据,textStatus){
$('#log')。前置(''+data+'');
});
});
在fetch.php
中,我使用了sleep(2)
,因此我可以确保它正常工作。它似乎不是等待第一篇文章通过后再进入阵列中的下一个广告号,而是同时运行所有这些广告号
我猜,
$.post()
会在完成之前返回吗?避免这种情况的最佳方法是什么?尝试在选项中添加async:false
$(ad_numbers).each(function() {
ad_number = $.trim(this);
if(!ad_number) { return true; }
$.ajax({
type: 'POST',
url: '/fetch.php',
data: {ad_number: ad_number},
async: false,
success: function(data, textStatus) {
$('#log').prepend('<p>' + data + '</p>');
}
});
});
$(ad_编号)。每个(函数(){
ad_编号=$.trim(此);
如果(!ad_number){返回true;}
$.ajax({
键入:“POST”,
url:“/fetch.php”,
数据:{ad_编号:ad_编号},
async:false,
成功:功能(数据、文本状态){
$('#log')。前置(''+data+'');
}
});
});
AJAX是异步的fetch.php
可能正在调用sleep
,但JavaScript以异步模式工作,不会等待sleep
结束