我有一个jQuery Ajax函数,它向服务器请求数据。jquery Ajax加载顺序
代码查找所有跨度,获取它们的ID并将其发送到json.php以获得结果。每个id返回一个不同的值,它们的加载时间是不同的。说一个瞬间加载,另一个在10秒内加载。
什么错:好的,一旦页面加载,所有的请求都发送到json.php,但是如果第三个span将立即返回一个结果,它会为前两个加载首先等待!
场景:我有3个跨度,第一个必须在9秒内返回,第二个必须在4秒内返回,第三个必须在5秒内加载。 以下是发生的情况:第一个跨度在9秒后出现,秒跨度在9 + 4秒后出现,最后一个跨度在9 + 4 + 3秒内出现。
下面是代码:
<script>
function getData(d){
var r=Math.floor(Math.random()*500)
$('#'+d).addClass('load');
var handler = '';
$.get('json.php?request='+d+'&r='+r, function(data) {
var obj = jQuery.parseJSON(data);
for (var i = 0; i < obj.length; i++) {
var object = obj[i];
for (property in object) {
handler = object[property];
$('#'+d).removeClass('load');
$('#'+d).html(handler);
}
}
});
return true;
}
$(document).ready(function() {
$("span").each(function() {
getData($(this).attr('id'));
});
});
</script>
<span id="first_data"></span>
<span id="second_data"></span>
<span id="third_data"></span>
这里有什么问题?
我不明白你的问题。你问为什么三个Ajax调用的响应时间不同?你是问如何对ajax结果进行排序,以便按照特定顺序显示结果?你是问如何在跨度之间显示特定时间和顺序的结果? – jfriend00
我希望每个跨度都相应地出现。例如跨度2仅需3秒即可加载,所以我希望结果在3秒内出现。跨度1需要20秒才能加载,所以我想要在20秒内出现...这里跨度2需要23秒,而不是3秒。而请求正在异步完成,所以我没有真正明白。 – Reza
我建议在页面启动时查看Firebug中的Net面板(免费的Firefox附件),并查看浏览器是否持有ajax请求。 – jfriend00