我正在开发一种聚合器/推文墙。在mo它只使用来自XML文件(我们最新消息)的数据。不过,我在逻辑上犯了一点错误。
目前它仅提取过去30天内的物品。 Live demo加载需要几秒钟(使用最后240天可以使用其他内容)。但是,我需要它:
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“最新鲜”,然后这些数据随机排列并输出,因此有一个很好的均匀混合。