jQuery AJAX同步但“暂停”选项卡直到完成

时间:2013-12-06 15:51:52

标签: javascript jquery ajax sync synchronous

我正在尝试发送一些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吗?在加载时,我无法在页面上执行任何操作。

1 个答案:

答案 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);
        }
    }
}