我得到一个带有AJAX调用的用户列表,但在AJAX中我调用另一个AJAX来获取第一次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每次都会随机结束,有时用户Adam处于开始状态,有时候在中间等等。列表本身很好并且顺序正确
我做了很多数学,这可能会减慢第二次AJAX调用,这可能是为什么它以一种奇怪的顺序结束
这两个问题都发生了,因为两个AJAX并没有“一起”运行,而是单独运行,是否有办法使它们彼此同步,并且有一种确保AJAX完成的好方法我可以出示我的桌子吗?
答案 0 :(得分:0)
在循环中发送ajax请求似乎不是一个好主意。为什么不发送一个带有id数组的ajax请求作为数据,在你的服务器端脚本中只获取“WHERE id
IN(id_list)”用户记录数组并将它们作为json编码对象返回,然后在双循环内输出,首先是<tr>
,第二是输入字段。
对不起,我无法提供代码,因为我不知道从您的服务器请求返回了什么。