2012-04-17 83 views
0

我正在嘗試做一個循環,我使用jquery $ .get從另一個頁面加載一些內容。

下面是我在做什麼:

for(var i=0; i<users.length; i++) { 
    var myURL = "http://url.com/user.php?user="; 

    myURL = myURL + users[i]; 

    $.get(myURL, function(data){ 
     $('table').append(data) 
    }); 

} 

這部分的所有工作正常,它更新我的表,返回的數據。我的問題是,我想顯示一個加載圖標,甚至只是顯示「正在加載」的文本,直到它完成從另一頁面加載所有數據爲止。

我不會讓你從我嘗試過的所有事情都不起作用,因爲我真的非常厭惡JS,而且這會讓人感到尷尬。

任何建議,將不勝感激。

+3

僅供參考:它會幾乎同時觸發'users.length' ajax請求。你最好發起一個單一的請求,返回你需要的所有數據。 – 2012-04-17 03:53:06

+1

當然,假設Web服務支持它或您控制它。 – bdares 2012-04-17 03:56:51

+0

@MДΓΓБДLL問題是users.php實際上連接到另一個web服務,當我嘗試一次獲取所有用戶時超時,所以這就是爲什麼我需要將它們放到更小的塊中。 – 2012-04-17 04:41:32

回答

1
var doneCounter = 0; 
for(var i=0; i<users.length; i++) { 
    var myURL = "http://url.com/user.php?user="; 

    myURL = myURL + users[i]; 

    $.get(myURL, function(data){ 
     $('table').append(data); 
     doneCounter++; 
     if(doneCounter == users.length) hideBusy(); 
    }); 

} 
+0

謝謝@bdares。我不得不做一些小的編輯:1.應該是「users.length」,我不得不改變如果doneCounter == user.length,當它是doneCounter + 1它永遠不會發射users.length爲1時。 – 2012-04-17 04:28:18