2011-09-20 44 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