我有一些代码,看起来像这样(我在那些不重要的问题的部分):我该如何组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