用AJAX技术实现在自己Blog上聚合并显示朋友Blog的最新文章

有时候,你的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;

}

好了,安装结束,测试一下吧!
您可能感兴趣的文章:

  • JQuery中Ajax的Post提交在IE下中文乱码的解决方法
  • 告别AJAX实现无刷新提交表单
  • ajax跨域请求js拒绝访问的解决方法
  • Ajax动态加载数据库示例
  • Ajax 无刷新在注册用户名时判断是否为空是否被使用
  • iframe式ajax调用示例代码
  • Ajax获得站点文件内容实例不涉及服务器
  • ThinkPHP使用心得分享-ThinkPHP + Ajax 实现2级联动下拉菜单
  • Ajax 给 XMLHttpReq.onreadystatechange传递参数
  • $.ajax传JSON数据到后台的注意事项小结
  • Ajax核心技术代码分享
张贴在3