Javascript jqueryajax加载序列
我有一个jqueryajax函数,可以从服务器请求数据 代码查找所有跨度,获取其ID并将其发送到json.php以获得结果。每个id返回不同的值,其加载时间也不同。假设一个瞬间加载,另一个在10秒内加载 错误:好的,一旦页面加载,所有请求都会发送到json.php,但是如果第三个跨距立即返回结果,它会等待前两个跨距先加载 场景:我有3个跨度,第一个跨度必须在9秒内返回,第二个跨度必须在4秒内返回,第三个跨度必须在5秒内加载。 发生的情况如下:第一个跨度在9秒后出现,第二个跨度在9+4秒后出现,最后一个跨度在9+4+3秒后加载 代码如下:Javascript jqueryajax加载序列,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有一个jqueryajax函数,可以从服务器请求数据 代码查找所有跨度,获取其ID并将其发送到json.php以获得结果。每个id返回不同的值,其加载时间也不同。假设一个瞬间加载,另一个在10秒内加载 错误:好的,一旦页面加载,所有请求都会发送到json.php,但是如果第三个跨距立即返回结果,它会等待前两个跨距先加载 场景:我有3个跨度,第一个跨度必须在9秒内返回,第二个跨度必须在4秒内返回,第三个跨度必须在5秒内加载。 发生的情况如下:第一个跨度在9秒后出现,第二个跨度在9+4秒后出现,最
<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>
函数getData(d){
var r=Math.floor(Math.random()*500)
$('#'+d).addClass('load');
var handler='';
$.get('json.php?请求='+d+'&r='+r,函数(数据){
var obj=jQuery.parseJSON(数据);
对于(变量i=0;i
这里有什么问题吗???什么浏览器
我不明白你的问题。您是否在问为什么三个ajax调用的响应时间不同?您是否在询问如何对ajax结果排序,以便结果按特定顺序显示?您是在问如何在跨度之间以特定的时间和顺序显示结果吗?我希望每个跨度都相应显示。e、 g.span 2只需3秒钟即可加载,因此我希望结果在3秒钟内显示。span 1加载需要20秒,所以我希望它在20秒后出现。。。在这里,跨度2需要23秒,而不是3秒。而且请求是异步完成的,所以我真的不明白。我建议在页面启动时查看Firebug(免费Firefox插件)中的网络面板,看看ajax请求是否由浏览器持有。实际上是这样的!当我检查Firebug时,它们是异步执行的,但是一旦之前的请求完成,它们就保持在加载状态。这也可能是因为您的服务器一次只能处理一个请求,所以它们在那里被序列化。顺便说一句,很好。但是,我在document.ready中调用了我的函数,以确保所有其他请求都已完成加载。但我肯定我在并发性方面有问题。@Reza这不是让其他请求完成加载,而是让n个Ajax请求挂起,但在FF7/8中,您会得到两个以上的请求,所以这是另外一回事。