这是代码 - 一旦文档被加载(在 $(document).ready(function(){ 内)它就会运行完成了吗?我想在页面上创建更多的 ajax 调用,但是在所有排队的调用完成之前它们不会执行。如果每个调用都在另一个调用执行后运行,这将使新的 ajax 调用有机会到达最前面下一个脚本代替所有 30 个脚本的末尾。如有任何建议,我们将不胜感激。
for (var x=0;x<=30;x++)
{
emailnumber = '<?php echo $storage->countMessages(); ?>'-x;
dataString='emailnumber='+emailnumber+'&url=<?php echo $url; ?>&email=<?php echo $email_address; ?>';
$.ajax({
type: "POST",
url: "phpdocument.php",
data: dataString,
success: function(msg){
$('#results').append(msg);
}
});
}
编辑:我应该在某处使用 setTimeout 函数吗?
最佳答案
在 ajax()
调用的选项中将 async
设置为 false
。但是,请注意:同步 Ajax 请求可能会锁定浏览器。这是因为 Ajax 请求将停止进一步执行,直到完成。换句话说,在所有 Ajax 请求完成之前,您不会退出 for
循环。
for (var x = 0; x <= 30; x++) {
emailnumber = '<?php echo $storage->countMessages(); ?>' - x;
dataString = 'emailnumber=' + emailnumber + '&url=<?php echo $url; ?>&email=<?php echo $email_address; ?>';
$.ajax({
type: "POST",
async: false,
url: "phpdocument.php",
data: dataString,
success: function(msg) {
$('#results').append(msg);
}
});
}
关于php - 让 jquery ajax (php) 脚本一个接一个地运行,而不是同时运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3755944/