小编Ant*_*uro的帖子

Ajax在每个()循环内部调用不是异步的

我正在尝试做的涉及通过一系列复选框.

对于检查它们中的每一个,我必须执行一些计算(使用ajax调用).如果有错误,我必须打破循环并返回一条消息.

每个ajax调用大约需要0.4秒才能执行,但这永远不会成为问题,因为我在任何给定时间最多只能检查其中4个.

但是我面临的问题是,在错误函数()中的那个之前弹出最后的警告框.错误功能确实有效,但总是在最后一个之后出现.

我的印象是,通过将调用定义为asynchronous = false,代码执行将等待调用返回响应.这是一个错误的假设吗?

有没有办法实现这个目标?

提前致谢

$("input[id*='chk_aut']").each(function() {
  if(this.value=="on") {
    $.ajax({
      type: "GET",
      url: "testpage.asp",
      cache:"false",
      async:"false",
      data: "which=checkvalues&value="
          + i_value
          + "&ref="+$("#cb_ref").val()
          + "&nif="+$("#txt_nif").val()
          + "&day="+i_day
          + "&month="+i_month
          + "&hours="+i_hours
          + "&year="+i_year + "&ms="
          + new Date().getTime(),
      success: function(msg) {
        //do something but continue the loop
      },
      error: function() {
        i_result =false;
        alert("An error has occurred");
        return false;//break the  loop
      }
    });
  }
});
alert(i_result);
Run Code Online (Sandbox Code Playgroud)

ajax each jquery asynchronous

1
推荐指数
2
解决办法
6745
查看次数

标签 统计

ajax ×1

asynchronous ×1

each ×1

jquery ×1