然后合并排序2个Feed

时间:2013-09-20 15:22:38

标签: javascript json jquery

我有以下脚本可以正常工作:

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);
            }
        }
    }
});

我现在有第二个Feed,即url = 'http://external_source/feed_2.xml';,我需要合并两个Feed。我了解到我可以重复上述过程并将feed_1显示在feed_2上方,但我需要将这两个Feed组合在一起,并按publishedDate对Feed条目进行排序。

我该怎么做呢?两个Feed的结构完全相同,它们在titlepublishedDate

中只有不同的值

1 个答案:

答案 0 :(得分:2)

由于您使用的是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)
});