Я создаю веб-приложение под названием «Ваша жизнь в музыке», в котором пользователь подключается к своей дате рождения, и приложение отображает верхний хит биллборда с каждого дня рождения с момента его рождения. Приложение ведет переговоры с Last.fm api, чтобы получить обложку альбома для каждой песни. В настоящее время для приложения требуется некоторое время, чтобы скомпилировать все обложки альбомов, и кто-то предложил ускорить процесс, объединив все вызовы API в один запрос. Хотя я немного новичок, и я не уверен, что это можно сделать. Итак, мой вопрос: как объединить несколько вызовов в один запрос?Объединение нескольких вызовов API в один запрос
Вот приложение: http://www.dailyspiro.com
И критический код:
function compileDisplay(birthDays) {
// create an HTML list that for each birthday displays top song, artist, and album art
htmlObj = {}
for (i = 0; i < birthDays.length; i++) {
var age = birthDays[i][0]; // age isn't equal to i if user was born before 1958
var date = birthDays[i][1];
var track = billboard[date]['song'];
var artist = billboard[date]['artist'];
getAlbumArt(age, track, artist, birthDays);
}
}
function getAlbumArt(age, track, artist, birthDays) {
$.getJSON("http://ws.audioscrobbler.com/2.0/?method=track.getInfo&api_key=(myApiKey)&artist=" + artist + "&track=" + track + "&format=json&callback=?", function (data) {
try {
var image = data.track.album.image[2]['#text'];
if (image == 'http://cdn.last.fm/flatness/catalogue/noimage/2/default_album_medium.png') {
throw 'generic image';
}
} catch (err) {
var image = 'images/' + track + '.jpg';
}
compileHtml(age, track, artist, image, birthDays)
})
}
Возможный дубликат [Параллельные асинхронные запросы Ajax с использованием jQuery] (http://stackoverflow.com/questions/1060539/parallel-asynchronous-ajax-requests-using-jquery) –