多个同步ajax调用问题

时间:2015-04-10 03:14:04

标签: javascript ajax

我需要连续发起同步ajax调用。

每次通话后,我都要更新 DOM元素

现在问题就出现了,只有在所有调用完成后才会更新元素。

var xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET", "analysis.py?id="+id, false);
xmlhttp.send();
document.getElementById("res").innerHTML = "Done id "+id;
id+=10;
xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET", "analysis.py?id="+id, false);
xmlhttp.send();
document.getElementById("res").innerHTML = document.getElementById("res").innerHTML+"Done id "+id;

元素dom一次显示:Done id 1Done id 11而不是一个接一个地预期,即元素在两次调用结束时直接更新。

编辑1: 嗨,大家好, 刚刚发现我的代码的另一个问题。以下代码仅运行第一个ajax,之后ajax调用似乎在运行,但是这些调用没有在analyze.py中定义的工作。

var total = %d;
    function filldatabase(){
    var id = 1;
    callajax(id);
}
function callajax(id){
    $.ajax({
          url: "analysis.py?id="+id,
          context: document.body
    }).done(function() {
          $("#progress").html(Math.floor(((id/(total-5))*100))+"%%");
          $("#pbar").css("width", ((id/(total-5))*100) + "%%");
          if(id<=1296){
                callajax(id+10);
          }
          else{
            $("#res").html("Completed. Redirecting in 5 seconds...<meta http-equiv='refresh' content='5;URL=get_comment.py'>");
          }
      });
    }

1 个答案:

答案 0 :(得分:-1)

通过在前一个回调中调用下一个ajax来解决这个问题。