用AJAX技術(shù)實(shí)現(xiàn)在自己Blog上聚合并顯示朋友Blog的最新文章
更新時(shí)間:2014年05月15日 10:43:33 作者:
在自己Blog上聚合并顯示朋友Blog的最新文章,這樣方便自己及時(shí)了解朋友的消息,另外,也方便訪問者找到和本Blog相關(guān)的blog和文章
有時(shí)候,你的Blog可能需要這樣的功能:
在自己Blog上聚合并顯示朋友Blog的最新文章,這樣方便自己及時(shí)了解朋友的消息,另外,也方便訪問者找到和本Blog相關(guān)的blog和文章。
這個(gè)功能你可以叫它“Blog聚合”或者“Blog聯(lián)播”,目前,實(shí)現(xiàn)這樣功能的軟件或服務(wù)都有限制:比如,Terac Sinfonia、Lilina、MXNA雖然功能都很強(qiáng)大,但是需要安裝,不能自由定制,不能嵌入到Blog側(cè)邊欄。另一方面,目前提供這樣服務(wù)的BSP只能聚合本系統(tǒng)內(nèi)的用戶,限制也很多。
為了解決以上問題,我采用AJAX(Asynchronous JavaScript + XML)技術(shù)實(shí)現(xiàn)了在自己Blog上聚合并顯示朋友Blog的最新文章的功能,你可以根據(jù)需要,進(jìn)行自由定制。默認(rèn)是支持RSS 2.0規(guī)范的,Terac Miracle、Movable Type、Word Press、Donews / 博客園 / CSDN采用的.Text系統(tǒng)都能很好的支持,你可以自由修改,來支持RSS 0.92、RSS 1.0、Atom 0.3。
為什么采用AJAX呢?首先,聚合別人的RSS不能影響自己網(wǎng)站的速度,所以需要異步執(zhí)行,其次,RSS本身就是一個(gè)很規(guī)范的XML文檔,另外,由于聚合內(nèi)容大小不可定,所以必須要局部刷新,最重要的一點(diǎn),采用AJAX完全把加載解析XML的操作放到客戶端進(jìn)行處理,節(jié)省服務(wù)器帶寬和資源,最后,這個(gè)功能我完全用JavaScript實(shí)現(xiàn)的,這樣,不管你的blog是ASP、.Net、PHP、JSP、Perl,甚至純HTML的都能用。下面說用法:
首先,在你Blog側(cè)邊欄合適位置加入這樣一段代碼:
<script src="ajax_rss.js" type="text/javascript"></script>
然后將下面的內(nèi)容保存成“ajax_rss.js”,然后上傳到服務(wù)器相應(yīng)的位置:
//你可以自由添加符合RSS 2.0規(guī)范的 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;
}
好了,安裝結(jié)束,測(cè)試一下吧!
在自己Blog上聚合并顯示朋友Blog的最新文章,這樣方便自己及時(shí)了解朋友的消息,另外,也方便訪問者找到和本Blog相關(guān)的blog和文章。
這個(gè)功能你可以叫它“Blog聚合”或者“Blog聯(lián)播”,目前,實(shí)現(xiàn)這樣功能的軟件或服務(wù)都有限制:比如,Terac Sinfonia、Lilina、MXNA雖然功能都很強(qiáng)大,但是需要安裝,不能自由定制,不能嵌入到Blog側(cè)邊欄。另一方面,目前提供這樣服務(wù)的BSP只能聚合本系統(tǒng)內(nèi)的用戶,限制也很多。
為了解決以上問題,我采用AJAX(Asynchronous JavaScript + XML)技術(shù)實(shí)現(xiàn)了在自己Blog上聚合并顯示朋友Blog的最新文章的功能,你可以根據(jù)需要,進(jìn)行自由定制。默認(rèn)是支持RSS 2.0規(guī)范的,Terac Miracle、Movable Type、Word Press、Donews / 博客園 / CSDN采用的.Text系統(tǒng)都能很好的支持,你可以自由修改,來支持RSS 0.92、RSS 1.0、Atom 0.3。
為什么采用AJAX呢?首先,聚合別人的RSS不能影響自己網(wǎng)站的速度,所以需要異步執(zhí)行,其次,RSS本身就是一個(gè)很規(guī)范的XML文檔,另外,由于聚合內(nèi)容大小不可定,所以必須要局部刷新,最重要的一點(diǎn),采用AJAX完全把加載解析XML的操作放到客戶端進(jìn)行處理,節(jié)省服務(wù)器帶寬和資源,最后,這個(gè)功能我完全用JavaScript實(shí)現(xiàn)的,這樣,不管你的blog是ASP、.Net、PHP、JSP、Perl,甚至純HTML的都能用。下面說用法:
首先,在你Blog側(cè)邊欄合適位置加入這樣一段代碼:
復(fù)制代碼 代碼如下:
<script src="ajax_rss.js" type="text/javascript"></script>
然后將下面的內(nèi)容保存成“ajax_rss.js”,然后上傳到服務(wù)器相應(yīng)的位置:
復(fù)制代碼 代碼如下:
//你可以自由添加符合RSS 2.0規(guī)范的 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;
}
好了,安裝結(jié)束,測(cè)試一下吧!
您可能感興趣的文章:
- JQuery中Ajax的Post提交在IE下中文亂碼的解決方法
- 告別AJAX實(shí)現(xiàn)無刷新提交表單
- ajax跨域請(qǐng)求js拒絕訪問的解決方法
- Ajax動(dòng)態(tài)加載數(shù)據(jù)庫示例
- Ajax 無刷新在注冊(cè)用戶名時(shí)判斷是否為空是否被使用
- iframe式ajax調(diào)用示例代碼
- Ajax獲得站點(diǎn)文件內(nèi)容實(shí)例不涉及服務(wù)器
- ThinkPHP使用心得分享-ThinkPHP + Ajax 實(shí)現(xiàn)2級(jí)聯(lián)動(dòng)下拉菜單
- Ajax 給 XMLHttpReq.onreadystatechange傳遞參數(shù)
- $.ajax傳JSON數(shù)據(jù)到后臺(tái)的注意事項(xiàng)小結(jié)
- Ajax核心技術(shù)代碼分享
相關(guān)文章
結(jié)合AJAX進(jìn)行PHP開發(fā)之入門
結(jié)合AJAX進(jìn)行PHP開發(fā)之入門...2006-12-12jsp+ajax實(shí)現(xiàn)無刷新上傳文件的方法
這篇文章主要介紹了jsp+ajax實(shí)現(xiàn)無刷新上傳文件的方法,結(jié)合實(shí)例形式分析了ajax無刷新上傳文件及jsp后臺(tái)處理的相關(guān)技巧,需要的朋友可以參考下2016-01-01Ajax客戶端異步調(diào)用服務(wù)端的實(shí)現(xiàn)方法(js調(diào)用cs文件)
下面小編就為大家分享一篇Ajax客戶端異步調(diào)用服務(wù)端的實(shí)現(xiàn)方法(js調(diào)用cs文件),具有很好的參考價(jià)值,希望對(duì)大家有所幫助2017-12-12ajax異步傳值及后端接收參數(shù)的多種方式小結(jié)
這篇文章主要介紹了ajax異步傳值及后端接收參數(shù)的多種方式小結(jié),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2023-11-11關(guān)于前端ajax請(qǐng)求的優(yōu)雅方案(http客戶端為axios)
這篇文章主要給大家介紹了關(guān)于前端ajax請(qǐng)求的優(yōu)雅方案,本文http客戶端為axios,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-12-12