jquery AJAX从XML中提取数据 - 仅限最后4项

时间:2014-01-06 14:59:34

标签: ajax arrays jquery

我正在开发一种聚合器/推文墙。在mo它只使用来自XML文件(我们最新消息)的数据。不过,我在逻辑上犯了一点错误。

目前它仅提取过去30天内的物品。 Live demo加载需要几秒钟(使用最后240天可以使用其他内容)。但是,我需要它:

  • 按时间顺序拉出最后4项。
  • 随机播放那个阵列 随机排序(但都是“新鲜的”新闻)。
  • 输出该数组。
jQuery(function () {
    $.ajax({
        url: 'http://www.sagittarius-digital.com/news.rss',
        dataType: 'xml',
        complete: function() {
          /*Init masonry.js*/
          var container = document.querySelector('#container');
          var msnry = new Masonry( container, {
              // options
              gutter: 20,
              columnWidth: 320,
              itemSelector: '.item'
            });
          }
    }).done(function (xml) {
        var items = [];
        $(xml).find('item').each(function () {
            var $item    = $(this);
            var date     = new Date($item.find('pubDate').text());
            var date_30  = new Date().getTime() - (1000*60*60*24*240); /* last figure = number of days to sort back from */
            var yyyymmdd = date.getFullYear() + '' + (date.getMonth() + 1) + '' + date.getDate();

            if ( date_30 < date.getTime() ) { // newer than 30 days
                var array = '<div class="item"><h2>News</h2>';
                array += '<p>' + yyyymmdd + '</p>';
                array += '<a href="' + $item.find('link').text() + '">';
                array += '<h2>' + $item.find('title').text() + '</h2>';
                array += '<p>' + $item.find('description').text() + '</p>';>     

                array += '<p>Category: ' + $item.find('category').text() + '</p>';
                array += '</a>';
                array += '</div>';
                items.push(array);
            }
        });
        $('div.item').after(items.join(' '));
    }).fail(function () {
        console.log('error', arguments)
    });
});

基本上我之后需要添加第二个RSS feed,其中包含不同的信息,Twitter ajax调用和facebook ajax调用。因此,我将拥有12位数据,这些数据都是4“最新鲜”,然后这些数据随机排列并输出,因此有一个很好的均匀混合。

0 个答案:

没有答案