Ajax 程序没有按我的预期运行。看代码
$(document).ready(function(){
$("input").keyup(function() {
for(var i=400;i<421;i++){
(function(counter){
counter=String(counter);
$.ajax({
type: "GET",
url: "results/result_html.php?usn="+txt+counter+"&resultType="+resultType,
dataType:"JSON",
success:function(result){
$("#info").hide();
$("#result").html(result);
$("#usn").attr("placeholder", "Class USN");
}
});
})(i);
}
alert("hai");
});});
在这段代码中,我想在完成 for 循环中的所有 Ajax 请求后显示警报。但是当我运行此代码时,警报首先显示。我是 Ajax 新手,请任何人帮助我按我的预期运行。
最佳答案
Ajax 是异步的,这意味着它将继续并行运行代码。 Ajax 请求完成后调用 success 函数。你可以做的是:
$(document).ready(function(){
$("input").keyup(function() {
var loopsToDo = 20, done=0;
for(var i=400;i<421;i++){
var counter=String(i);
$.ajax({
type: "GET",
url: "results/result_html.php?usn="+txt+counter+"&resultType="+resultType,
dataType:"JSON",
success:function(result){
$("#info").hide();
$("#result").html(result);
$("#usn").attr("placeholder", "Class USN");
},
complete : function(){
done++;
if( done == loopsToDo)
{
alert("DONE")
}
}
});
}
});});
关于php - Ajax 程序没有按我的预期运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15108688/