• --:)欢迎访问锋网源码(:--
  • 首页
  • RSS订阅
  • 常用软件
  • 网页模板
  • 网站运作
  • 锋网学院
  • 时代互联
  • 中国红网
  • 中资源!
  • 繁體中文

  • 学院首页
  • 新闻资讯
  • 网站运营
  • 网站开发
  • 美工设计
  • 数据库类
  • 服务器类
  • 网络应用
  • 操作系统
  • 软件教学
编程开发   认证考试   网络安全   文章搜索: 高级搜索
会员登录/控制面版 您的位置: 学院首页 >> 网站开发 >> Ajax教程 >> 文章内容
 

精彩推荐

 
 

本类推荐文章

  • .net Ajax无刷新技术
  • 用AJAX开发智能Web应用程序之..
  • Ajax开发工具IntelliJ IDEA
  • 用AJAX开发智能Web应用程序之..
  • 用PHP和AJAX创建RSS聚合器
 
 

本类阅读排行

  • .net Ajax无刷新技术
  • ASP.NET 2.0实现AJAX的Web开..
  • 技术分析DWR让AJAX如此简单
  • 用AJAX调用SOAP Web服务:构..
  • Ajax技术:构建动态的Java应..
  • 用AJAX开发智能Web应用程序之..
  • Ajax开发工具IntelliJ IDEA
  • 用AJAX开发智能Web应用程序之..
  • AJAX框架简介
  • 如何在 Oracle JDeveloper 中..
  • 用PHP和AJAX创建RSS聚合器
  • AJAX开发智能Web应用程序
  • 开发保留标准浏览器功能的AJ..
  • Ajax 的 Java 对象序列化
  • Ajax简要应用说明及技术开发..
  • Ajax与《Ajax基础教程》
  • 详解如何实现最基本的AJAX框..
  • AJAX+ASP.NET解决网页打开等..
  • Ajax使用初步 (.net)
  • 技术新知:AJAX基础教程
 
 

用PHP和AJAX创建RSS聚合器

  • 日期:2006-11-02     人气:     出处:锋网源码     作者:
  • 字体大小:
  • 小
  • 中
  • 大

GET/POST与AJAX相结合

为了POST请求,我们首先需要创建该请求对象。如果你没有创建请求对象的经验,那么可以读一下我的文章《How To Use AJAX》或简单地研究一下本文的示例源代码。一旦创建该请求对象,就可以调用sendFeed方法并传递由表单所创建的URL:

function sendFeed(url){

 post.onreadystatechange = sendRequest;

 post.open("POST", url, true);

 post.send(url);

}

一旦收到来自于PHP对象的响应并被正确加载,则对与该响应相应的本地文件发出另一个请求。在这种情况中,post.responseText提供给我们该新文件的路径:

function sendRequest(){

 if(checkReadyState(post)){

request = createRequestObject();

request.onreadystatechange = onResponse;

request.open("GET", post.responseText, true);

request.send(null);

 }

}

分析响应

由于RSS馈送之间的区别,分析响应具有一定的挑战性。一些含有包含标题和描述结点的图像,而其它则没有。因此,当我们分析回馈时,我们需要做一点检查来译解它是否包括一图像。如果它包括一图像,我们就可以,与该馈送的标题和链接一起,在image div标签中显示该图像:

var _logo = "";

var _title = response.getElementsByTagName('title')[0].firstChild.data;

var _link = response.getElementsByTagName('link')[0].firstChild.data;;

_logo += "<a href='" + _link + "' target='_blank'>" + _title + "</a><br/>";

if(checkForTag(response.getElementsByTagName('image')[0]))

{

 var _url = response.getElementsByTagName('url')[0].firstChild.data;

 _logo += "<img src='" + _url + "' border='0'><br/>"

}

document.getElementById('logo').innerHTML = _logo;

我们不仅必须检查每个图像以显示它,当遍历馈送中所有的项时我们还需要对之进行检查。因为如果存在一个图像,那么所有另外的标题和链接结点索引都将无法正常工作。因此,当发现图像标签时,我们应该通过在每一次遍历中增加索引值(+1)来调整标题和链接结点的索引:

if(checkForTag(response.getElementsByTagName('image')[0]) "" i>0){

 var _title=response.getElementsByTagName('title')[i+1].firstChild.data;

 var _link=response.getElementsByTagName('link')[i+1].firstChild.data;

}

else{

 var _title =response.getElementsByTagName('title')[i].firstChild.data;

 var _link = response.getElementsByTagName('link')[i].firstChild.data;

}

你可以使用checkForTag方法来检查是否存在特定的标签:

function checkForTag(tag){

 if(tag != undefined) {

return true;

 }

 else{

return false;

 }

}

存在许多种进行馈送分析的可能性。例如,你可以把项赋到类别上并使得该类别可折迭,这样用户就可以对其想观看的内容进行选择。作为一个示例,我使用日期来对项进行分类-这可以通过译解是否针对一个特定项的pubDate不同于前一个项的pubDate并且相应地显示一新的日期来实现:

if(i>1){

 var previousPubDate = response.getElementsByTagName('pubDate')[i-1].firstChild.data;

}

if(pubDate != previousPubDate || previousPubDate == undefined){

 _copy += "<div id='detail'>" + pubDate + "</div><hr align='left' width='90%'/>";

}

_copy += "<a href="javascript:showDetails('" + i + "');">" + _title + "</a><br/><br/>";

document.getElementById('copy').innerHTML += _copy;

注意,上面的最后一部分是showDetails方法,它用于当一用户从一个馈送中选择一特定的项时进行细节显示。这个方法有一个参数(项索引值),这个索引用于发现在该馈送中details结点的索引:

[1] [2] [3]
相关文章
相关软件

  • 网友评论:
  • 查看所有评论
  • 我要发表评论
 

关于本站 | 广告联系 | 版权声明 | 网站地图 | 加入收藏 | 帮助中心 |

Copyright © 2006-2007 fwvv.net  程序支持:木翼  皖ICP备06004916号  

感谢:点击网络 联网科技 天盈信息 企联网 中国E速网  提供服务器及带宽赞助