在循环中执行AJAX请求时,Chrome浏览器会“挂起”

时间:2016-05-11 09:17:11

标签: javascript ajax

每个AJAX后Chrome浏览器都不会刷新,只有在循环结束执行所有AJAX请求时才会刷新。在Firefox中,它也可以在Chrome调试器中正常工作(一步一步)。我还添加了超时,但它没有帮助。 Ajax调用是同步的。更改为异步不会产生差异。

$("#doAllTest").click(function () {
  $(".doTest").each(function () {
    $(this).trigger('click');
  })
});

我的一个Ajax调用:

$("#ut2").click(function () {
    var user_id = logIn("user","user");
        $.ajax({
            type: 'POST',
            url: "/ScrummyPro/src/forms/card/includes/windows.php",
            async: false,
            data: {
                window: "update_sp",
                burned_stp: "1",
                card_id: "409"
            },
            success: function (result) {
                var msg = jQuery.parseJSON(result);
                if (msg) {
                    $("#ut2result").text("Success - Server response: " + msg);
                    $("#ut2result").attr("class", "successful");

                } else {
                    $("#ut2result").text("Operation failed - Server response: " + result);
                    $("#ut2result").attr("class", "failed");                     
                }
                  //the change (in if statement) appears after looping.
            },
            error: function (result) {
                $("#ut2result").text("Ajax Error").attr("class", "failed");              
            }
        });

        importer(2);
});

循环后出现if语句(成功时)的DOM更改。

在调试模式下,我可以看到类“成功”被添加,但我看不到它的效果。它出现在循环之后。

1 个答案:

答案 0 :(得分:0)

public class myclass { public Details DetailsInfo { get; set; } public string name{ get; set; } public string Email { get; set; } public subjects? subj { get; set; } //note the question mark ? } 功能会阻止Chrome浏览器,所以我改变了循环:

.each