我得到一個用AJAX調用的用戶列表,但在AJAX中,我調用另一個AJAX來獲取一些我在第一次AJAX調用時無法獲得的信息。另一個AJAX調用中的jQuery AJAX。同步和完成的問題
這基本上是我正在使用的結構,我已經刪除了一些不必要的代碼,只會混亂,可能在這裏和那裏存在一些語法錯誤。 但代碼基本上工作,但有一些問題。
function doAJAX(){
$(".loading").show();
$("#table").hide();
$.ajax({
type: "POST",
url: "@Url.Action("Action", "Controller")",
data: { variable: varVariable},
dataType: "json",
success: function (data) {
$.each(data, function (index, value) {
$.ajax({
type: "POST",
url: "@Url.Action("Action", "Controller")",
data: { variable: value.id},
success: function (data2) {
$.each(data2, function (index2, value2) {
$("#tableBody").append("<tr><td>" + value.test +"</td><td>" + value2.test +"</td></tr>");
});
}
});
});
}
});
}
我躲在我的表在開始時,AJAX是完成我想要再次顯示它的時候。我應該把它放在哪裏?即使我將它放在第一個AJAX成功函數的末尾,它也不起作用,因爲它在另一個AJAX仍在運行時被執行。
出於某種原因,我的列表中的奇次,每次的AJAX運行結束了,我的列表是按字母順序與此AJAX分揀但它在結束了隨機每次,有時用戶亞當是在開始時,有時中等等。該列表本身是好的,正確的順序
我做了很多數學是可能減慢第二AJAX調用的這可能是爲什麼它在一個奇怪的順序
這兩個結束問題正在發生,因爲兩個AJAX不是「一起」運行,而是單獨運行,是否有一種方法可以使它們彼此同步,並且有一種確保AJAX完成的好方法,現在我可以顯示我的表了嗎?
您可以將'async:false'添加到您的第二個'ajax'調用中,但這可能會凍結瀏覽器。 – ojovirtual
@HenrikP:你在這裏所做的ajax調用的級別非常複雜。如果可能的話,嘗試進行一次ajax調用來檢索最大數據。 – dreamweiver
@ojovirtual這似乎做到了。也似乎在較慢的計算機上工作,除非凍結問題是瀏覽器特定的 – HenrikP