当前位置: 首页 > 图文教程 > 网络编程 > AJAX技术 > 用AJAX技术聚合RSS

AJAX技术
自己动手封装的 ajax
Ajax 对象 包含post和get两种异步传输方式
Ajax 超时检查脚本
AJAX 简介及入门实例
ajax 开发守则 10条说明
Ajax 返回字符串的过滤实现代码
Ajax 程序开发中常见问题
AJAX 验证框架13个
ajax 入门基础之 XMLHttpRequest对象总结
基于AJAX的分页类实现代码
如何在Asp.net中使用HtmlArea编辑器
使用 jQuery 简化 Ajax 开发
ASP.NET 与 Ajax 的实现方式
AJAX技术介绍
Ajax程序设计入门
学习Ajax教程,详细了解Get与Post
关于Ajax responseText 的一点阐述
ajax中文乱码解决方法
AJAX中文问题总结
AJAX无刷新更新数据

用AJAX技术聚合RSS


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 65 ::
收藏到网摘: n/a

有时候,你的Blog可能需要这样的功能:
在自己Blog上聚合并显示朋友Blog的最新文章,这样方便自己及时了解朋友的消息,另外,也方便访问者找到和本Blog相关的blog和文章。
这个功能你可以叫它“Blog聚合”或者“Blog联播”,目前,实现这样功能的软件或服务都有限制:比如,Terac Sinfonia、Lilina、MXNA虽然功能都很强大,但是需要安装,不能自由定制,不能嵌入到Blog侧边栏。另一方面,目前提供这样服务的BSP只能聚合本系统内的用户,限制也很多。
为了解决以上问题,我采用AJAX(Asynchronous JavaScript + XML)技术实现了在自己Blog上聚合并显示朋友Blog的最新文章的功能,你可以根据需要,进行自由定制。默认是支持RSS 2.0规范的,Terac Miracle、Movable Type、Word Press、Donews / 博客园 / CSDN采用的.Text系统都能很好的支持,你可以自由修改,来支持RSS 0.92、RSS 1.0、Atom 0.3。
为什么采用AJAX呢?首先,聚合别人的RSS不能影响自己网站的速度,所以需要异步执行,其次,RSS本身就是一个很规范的XML文档,另外,由于聚合内容大小不可定,所以必须要局部刷新,最重要的一点,采用AJAX完全把加载解析XML的操作放到客户端进行处理,节省服务器带宽和资源,最后,这个功能我完全用JavaScript实现的,这样,不管你的blog是ASP、.Net、PHP、JSP、Perl,甚至纯HTML的都能用。下面说用法:
首先,在你Blog侧边栏合适位置加入这样一段代码:
<script src="ajax_rss.js" type="text/javascript"></script>

然后将下面的内容保存成“ajax_rss.js”,然后上传到服务器相应的位置:
//你可以自由添加符合RSS 2.0规范的 RSS
processRSS('http://www.songlian.cn/blog/feed.php');
processRSS('http://www.bo-blog.com/weblog/feed.php');
function processRSS(url){
var req = getXMLHttpRequest();
req.onreadystatechange = function () {
if (req.readyState == 4 && req.status == 200) {
var doc=req.responseXML.documentElement;
parseRSS(doc);
}
}
req.open("GET",url, true);
req.send(null);
}
function parseRSS(doc) {
//如果要用RSS 0.92, RSS 1.0, Atom 0.3,你需要改下面3行
var blogName=doc.getElementsByTagName("title")[0].firstChild.data;
var entryName=doc.getElementsByTagName("title")[1].firstChild.data;
var entryLink=doc.getElementsByTagName("link")[1].firstChild.data;
document.getElementById('ajax_rss').innerHTML += '<a target="_blank" href="'+entryLink+'" title="'+blogName+'">'+entryName+'</a><br/>'; }
function getXMLHttpRequest() {
var xmlhttp;
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
xmlhttp = false;
}
}
if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}

好了,安装结束,测试一下吧!