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

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

用AJAX技术聚合RSS的更多相关文章

  1. Java之Ajax技术

    ajax(asynchronouse javascript and xml) 异步的javascript 和 xml(现在常把xml换成json): ajax是2005年提出的,在2006,2007年 ...

  2. 你真正的了解Ajax?Ajax技术简述

    Ajax技术是目前在浏览器中通过JavaScript脚本可以使用的所有技术的集合.Ajax并没有创造出某种具体的新技术,它所使用的大多数技术都是在很多年以前就已经存在了,然而Ajax以一种崭新的方式来 ...

  3. 特定场景下Ajax技术的使用

    ajax介绍 jax技术包含了几种技术:javascript.xml.css.xstl.dom.xhtml和XMLHttpRequest七种技术,所以ajax就像是粘合剂把七种技术整合到一起,从而发挥 ...

  4. Atitit 如何设置与安放知识的trap陷阱  知识聚合 rss url聚合工具 以及与trap的对比

    Atitit 如何设置与安放知识的trap陷阱  知识聚合 rss url聚合工具 以及与trap的对比 1.1. 安放地点 垂直知识网站csdn cnblogs等特定频道栏目,大牛博客 1 1.2. ...

  5. Javascript Ajax异步读取RSS文档

    RSS 是一种基于 XML的文件标准,通过符合 RSS 规范的 XML文件可以简单实现网站之间的内容共享.Ajax 是Asynchronous JavaScript and XML的缩写.通过 Aja ...

  6. 使用ajax技术实现txt弹出在页面上

    使用ajax技术实现txt弹出在页面上   使用ajax技术实现点击按钮,将TXT文本里的内容通过弹出框显示到页面上 /*事件会在页面加载完成后触发.*/ <script> window. ...

  7. 《所用到的AJAX技术基础》

    来自百度网页,w3cshool网页:AJAX = Asychronous JavaScript and XML,翻译成中文为:异步的JavaScript XML. 异步的意思就是不重新加载整个页面,后 ...

  8. Ajax技术

    1.ajax技术的背景 不可否认,ajax技术的流行得益于google的大力推广,正是由于google earth.google suggest以及gmail等对ajax技术的广泛应用,催生了ajax ...

  9. Ajax技术详解

    Ajax技术:Ajax描述了一种主要使用脚本(JS)操纵HTTP的web应用架构,它的主要特点是使用脚本操纵HTTP和web服务器进行数据交换,不会导致页面重载.Ajax的核心是JS的XMLHttpR ...

随机推荐

  1. 代理抓取RSS信息

    最近工作很闲,就自己写了一个可以看RSS订阅的网站.话说,RSS阅读器到处都是,随便下一个就可以了,为什么还去做一个网站形式的呢?作为一个热(xian)爱(de)前(dan)端(teng)的程序员,我 ...

  2. 浅谈AndroidManifest.xml与R.java及各个目录的作用

    在开发Android项目中,AndroidManifest.xml与R.java是自动生成的.但是对于测试来说,非常重要.经过师父的点拨,我对AndroidManifest.xml与R.java有了更 ...

  3. 基于OSGI.Net的图形界面系统

    在2013年的十月份有幸接触了osgi.net和iopenworks的创始人,了解和学习的插件式开发,开始了后台数据的处理生涯. 第一个有图形界面的系统——智能农业的环境监测系统,其实在这个系统中所有 ...

  4. 【LeetCode】38 - Count and Say

    The count-and-say sequence is the sequence of integers beginning as follows:1, 11, 21, 1211, 111221, ...

  5. enter mysql

    1, mysql -u database username -p 2, database password 3, use (database name) -> change database 4 ...

  6. 判断浏览器是IE的几种方式

    <script> if(!+[1,])alert("这是ie浏览器"); else alert("这不是ie浏览器"); </script&g ...

  7. 通过xshell 设置代理上网

    前言: 前段时间,选修了一门并行计算,老师给我们每个人分配了一个linux登录账号,通过这个账号,可能登录学校的一台linux . 一次偶然的机会,了解到可以通过xshell , ssh服务器给本地开 ...

  8. hadoop的simple认证

    目前Hadoop的稳定版本为1.2.1,我们的实验就在hadoop-1.2.1上进行 Hadoop 版本:1.2.1 OS 版本: Centos6.4 环境配置 机器名 Ip地址 功能 用户 Hado ...

  9. Mapreduce读取Hbase表,写数据到多个Hbase表中

    Job端的变化: 通过设置conf,配置输出表,在reduce中获取输出表名字 Configuration conf = job.getConfiguration(); //输出表1 conf.set ...

  10. 解决“运行arm-linux-gcc命令,提示No such file or directory”的问题

    今天在ubuntu14.04上安装arm的交叉编译器arm-linux-gcc,环境变量配置好以后,运行arm-linux-gcc命令,总提示No such file or directory.然后去 ...