用AJAX技术聚合RSS

 更新时间:2006年06月09日 00:00:00   作者:  
有时候,你的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;
  }

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

相关文章

  • SpringMVC+Jquery实现Ajax功能

    SpringMVC+Jquery实现Ajax功能

    SpringMVC:是基于Spring的一个子框架(MVC框架),功能强于Spring,这个框架主要是解决咱们Controller这一层的问题。这篇文章主要介绍了SpringMVC+Jquery实现Ajax功能,需要的朋友可以参考下
    2019-06-06
  • 理解jquery ajax中的datatype属性选项值

    理解jquery ajax中的datatype属性选项值

    jquery中ajax的dataType属性用于指定服务器返回的数据类型,如果不指定,jQuery 将自动根据HTTP包MIME信息来智能判断,如果datatype选项不填写的话,会将返回的数据当成字符串处理。
    2015-10-10
  • ajax提交加载进度条示例代码

    ajax提交加载进度条示例代码

    提交加载进度条的实现方法有很多,在本文将为大家详细介绍下,使用ajax是如何实现的,下面有个不错的示例,大家可以感受下
    2013-10-10
  • 琥珀无限级分类联动菜单AJAX版

    琥珀无限级分类联动菜单AJAX版

    琥珀无限级分类联动菜单AJAX版...
    2006-11-11
  • AJax实现类似百度搜索栏的功能 (面试多见)

    AJax实现类似百度搜索栏的功能 (面试多见)

    下面是ajax实现一个简单的百度搜索栏的功能,当用户在上面的输入框中键入字符时,会执行函数 "showHint()" 。下文通过实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧
    2016-11-11
  • ajax Suggest类似google的搜索提示效果

    ajax Suggest类似google的搜索提示效果

    实现了类似google的搜索提示效果。
    2009-03-03
  • 使用AjaxFileUpload.js实现异步文件上传示例

    使用AjaxFileUpload.js实现异步文件上传示例

    AjaxFilleUpload.js可以使得我们不用去管理Iframe的一系列操作,也不用影响我们的页面结构,实现异步的文件提交
    2014-05-05
  • 谈谈你对aja的理解(一、二)

    谈谈你对aja的理解(一、二)

    Ajax是Asynchronous Javascript And XML的缩写,其作用通过Ajax可以使用Javascript语句来调用XMLHttpRequest对象,直接与服务器进行通讯,可以在不重载页面的情况下与服务器交换数据。
    2015-10-10
  • Ajax+Servlet实现无刷新下拉联动效果

    Ajax+Servlet实现无刷新下拉联动效果

    这篇文章主要为大家详细介绍了Ajax+Servlet实现无刷新下拉联动效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • ajax浏览器兼容的问题探讨

    ajax浏览器兼容的问题探讨

    ajax浏览器兼容的问题一直都是同学们多烦恼的,下面有个不错的示例大家可以参考下,希望对大家有所帮助
    2014-01-01

最新评论