当前位置:中国站长下载文章中心网页编程PHP编程 → PHP和AJAX打造高级RSS聚合器

PHP和AJAX打造高级RSS聚合器

减小字体 增大字体 作者:编辑整理  来源:互联网  发布时间:2008-9-15 22:04:06
标题,链接和项。一旦我们拥有这些值,我们就可以创建一个新的Feed对象(我们将在后面集中讨论)。这个对象使用了feedCollection的长度(作为一个ID),以及标题,链接和来自回馈的项。然后,该Feed对象被添加到feedCollection和一个称为displayFeedTitles的方法中以便在该Feed对象中显示相应于每一项的标题。

 Aggregator.displayFeedTitles=function(feed)
{
 document.getElementById('titles').innerHTML+=feed.GetTitle();
 Aggregator.DisplayTitles(feed.id);
}
这个方法以Feed对象作为一个参数,显示它的标题,然后调用另一个称为DisplayTitles的方法:

 Aggregator.DisplayTitles=function(id)
{
 vartitleArray=Aggregator.feedCollection[id].GetAllTitles();
 vartitles=document.createElement("div");
 titles.id="subTitle_"+id;
 document.getElementById('title_'+id).appendChild(titles);
 for(vari=0;i<titleArray.length;i++)
 {
titles.innerHTML+=titleArray[i]+"<br/>";
 }
}
这个方法接收一个回馈ID并使用它从feedCollection数组中检索回馈并且得到它的所有标题。一旦接收到这些标题,我们将为该回馈中的项标题创建一个新的DIV元素并且把它添加在相应于特定的回馈的标题之后。这将允许我们通过点击回馈标题来切换显示内容中项的标题。一旦添加该新的DIV元素,我们只需简单地遍历所有的标题并且把它们到添加该新的DIV即可。

上面两个方法中的第一个用于实现切换回馈中项的标题,第二个方法负责显示一个在index.html文件中使用我们的描述DIV元素中的回馈的内容。这些回馈的内容通过Feed对象的GetDetails方法进行收集(在下一节当我们创建Feed对象时再讨论)。

 Aggregator.ToggleTitles=function(id)
{
 vartitles=document.getElementById('subTitle_'+id);
 titles.style.display=(titles.style.display=='')?'none':'';
}
Aggregator.DisplayFeed=function(feedId,id)
{
 vardetails=Aggregator.feedCollection[feedId].GetDetails(id);
 document.getElementById('description').innerHTML=details;
}六、Feed对象

这个Feed对象是一个prototype。通过它的构造器函数,Feed对象接收当我们在Aggregator对象中创建它时传递的所有参数。这些参数分别相应于回馈的ID,标题,链接和项。在这个函数中,我们设置所有的缺省值,创建一些数组以备后用,并且把项发送到一个称为parseItems的方法。在这个parseItems方法中,我们将检索我们的回馈项中的所有的值并且填充我们在构造器中创建的那个数组。

 Feed.prototype.parseItems=function(items)
{
 for(vari=0;i<items.length;i++)
 {
varlinkTitle=items[i].getElementsByTagName("title")[0].firstChild.nodeValue;
vartitle="<ahref='#'class='title'align=centerbgColor=#e7e9e9border=1>Feed.prototype.GetTitle=function()
{
 return"<divid='title_"+this.id+"'><br/><ahref='#'>"+this.linkTitleArray[id]+"</a><br/>";
 details+=this.descriptionArray[id]+"<br/>";
 details+=this.pubDateArray[id];
 returndetails;
}
七、小结

到现在为止,有关上面创建的Aggregator对象的下一步应该是添加一个timeout以便检查针对当前被添加到聚合器的RSS回馈的更新。另外,该回馈还能够被保存到一个数据库中并且被基于用户帐户加以检索。但是,因篇幅所限,这些功能只好留由读者您来实现了……

上一页  [1] [2]