2011-09-20 70 views
0

我创造我的HTML DIV占位和存储的URL,获取有关rel属性,部分网址是加载较慢使用jQuery .load没有延迟

使用如下因素代码时,在每个循环

$("div[class=ajax_wrapper]").each(function() { 
      $(this).load($(this).attr('rel'), function(content) { 
       //alert(content); 
      });  
     }); 

如何使异步不同的div负载:为每个负载功能等待一起移动到下一个,这使得有5个占位符的HTML载入相当缓慢前完成?

+1

这不是默认行为。 '.load'应该是非阻塞的(因此是回调),除非你已经设置你的ajax调用是同步的。提供进一步调查的测试案例。 – mekwall

+0

+1提供更多代码的想法 - 加载不应该被阻止。只是一个简单的提示 - 而不是'$(“div [class = ajax_wrapper]”)''你可以简单地使用'$(“div.ajax_wrapper”)选择器'。 – WTK

回答

0

您使用AJAX加载每个div的内容,导致多个并行异步请求,直到这些请求完成,无法显示内容。您可以尝试直接在第一个请求的服务器上加载其内容,并将它们作为初始HTML的一部分发送。如果内容不得不改变,你可以使用AJAX刷新只需要更改的div。

0

这个怎么样

$("div[class=ajax_wrapper]").load($(this).attr('rel'), function(content) { 
      //alert(content); 
     });  
}); 

编辑:在的document.ready,当然,也就是包裹在:

$(function() { //code }); 
+0

难道它不会加载相同的内容给所有匹配的div吗? – WTK

+0

嗯,不,因为它需要div的'rel'属性中的一个参数。 –

+0

我很确定它不会工作:] *这*不是,在这种情况下,指的是选择器找到的每个div。它将在外部环境中评估为变量。 – WTK