我正在尝试发送一些AJAX请求。它必须将数据收集到一个变量中,在完成后,它必须输出变量。如果我不同步,它只会在请求完成之前输出变量。在请求运行时是否可以继续使用页面?代码看起来像这样:
for (var i=0;i<10;i++) {
$.ajax({
type: "GET",
url: "http://google.com",
async: false,
data: "",
success:function(data){
total += $(data);
alert(total);
}
}
应加载http://google.com/ 10次,并将数据输出到名为total的变量中。这不是我使用的代码(我喜欢尽可能保密),但只是一个例子。
当它加载Google 10次时,由于 async:false ,页面会暂停。有可能使页面仍然有效,并且基本上在后台进行AJAX吗?在加载时,我无法在页面上执行任何操作。
答案 0 :(得分:0)
如果我不同步,它只会在请求完成之前输出变量。
不,它会在每个请求完成后输出变量10次。为避免这种情况,请使用计数器来完成已完成的请求数:
for (var i=0;i<10;i++) {
$.ajax({
type: "GET",
url: "http://google.com",
async: true,
data: "",
success:function(data){
total += $(data);
if (!--i)
alert(total);
}
}
}