У меня есть следующий скрипт, который отлично работает:
url = 'http://external_source/feed_1.xml';
$.ajax({
type: "GET",
url: document.location.protocol + '//ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=1000&callback=?&q=' + encodeURIComponent(url),
dataType: 'json',
success: function(data) {
values = data.responseData.feed.entries;
if (values[0]) {
for (i = 0; i <= values.length - 1; i++) {
document.write(values[i].title);
document.write(values[i].publishedDate);
}
}
}
});
Теперь у меня есть второй канал, т url = 'http://external_source/feed_2.xml';
, и мне нужно комбинировать оба канала. Я понимаю, что я могу повторить описанный выше процесс и имеют feed_1 дисплей выше feed_2, но мне нужно, чтобы объединить оба каналы и сортировки записей фидов publishedDate
.
Как мне это сделать? Оба канала структурированы точно так же, они просто имеют разные значения в title
и publishedDate
Поскольку вы используете jQuery, вы можете использовать jQuery.when
. В примере внизу этой страницы показано, как выполнить обратный вызов после завершения нескольких асинхронных методов.
Поскольку у вас будут возвращены оба данных, вы можете просто конкатрировать массивы и отсортировать их после этого:
$.when( $.ajax( "/page1.json" ), $.ajax( "/page2.json" ) ).done(function( a1, a2 ) {
// a1 and a2 are arguments resolved for the page1 and page2 ajax requests, respectively.
// Each argument is an array with the following structure: [ data, statusText, jqXHR ]
var data = a1[0].responseData.feed.entries.concat(a2[0].responseData.feed.entries)
});