我有一些代碼,看起來像這樣(我在那些不重要的問題的部分):我該如何組jQuery AJAX查詢?
$.ajax({
type: "POST",
url: "prepXML.php",
data: "method=getartists&user=" + userName + "&amount=" + amount,
dataType: "xml",
success: function(xml) {
$("artist", xml).each(function(){
// calculate and output some stuff and then call getTracks()
getTracks(artistName, artistNamePOST, artistPlaycount, divId, artistId);
});
}
});
function getTracks(artistName, artistNamePost, artistPlaycount, divId, artistId){
$.ajax({
type: "POST",
url: "prepXML.php",
data: "method=gettracks&user=" + userName + "&artist=" + artistNamePOST + "&playcount=" + artistPlaycount,
dataType: "xml",
success: function(xml){
// calculate and output some stuff
});
}
});
當這個運行時,它調用getTracks()五十次,使相當部分(服務器) CPU在很短的時間內加載完成。我想要做的是將AJAX getTrack()查詢分組,例如每次5個,等到這五個完成後,再調用下一個五個,等待下一個五個完成,然後調用下一個五個等。這樣做的目的是在基本相同的時間減少查詢次數(CPU負載分佈越來越均勻)。
我不確定如何做到這一點,因爲它可以部分擊敗AJAX,但如果可能的話,我仍然希望能夠做到這一點。有人能請我指出正確的方向嗎?謝謝。
爲了更好地理解我需要的和應用程序的功能,下面是鏈接到app。它可以試用任何lastfm尼克(如果你沒有一個,你可以使用我的 - 「pootzko」)。我希望我可以把鏈接放在帖子中(?),如果沒有,請隨時刪除它..
你爲什麼不只是隨着自己的音樂數據時,你做的返回軌道的數組'方法= getartist'那麼你只需要做的(每個藝術家)一所服務器調用。也許有一種叫做'getartistwithtracks'的方法 – musefan 2011-12-22 10:39:10
@musefan - 這與lastfm api一起工作,其中getartists首先查詢lastfm並獲得最高級聆聽arist的列表,之後它必須對lastfm進行新的單獨查詢以獲取關於每個這些藝術家。 – pootzko 2011-12-22 10:50:33
看看這個:[一堆ajax調用](http://stackoverflow.com/questions/42425885/trying-to-make-2-ajax-calls-via-jquery-and-then-prepending-the-data -taken-from/42426722#42426722) – 2017-02-23 21:57:43