用AJAX技術彙總RSS_AJAX相關

來源:互聯網
上載者:User
有時候,你的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側邊欄合適位置加入這樣一段代碼:

然後將下面的內容儲存成“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 += ''+entryName+' 
'; } 
  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; 
  } 
好了,安裝結束,測試一下吧!
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.