欧美三区四区_av先锋影音资源站_亚洲第一论坛sis_影音先锋2020色资源网_亚洲精品社区_在线免费观看av网站_国产一区二区伦理_亚洲欧美视频一区二区_99视频精品全部免费在线_精精国产xxxx视频在线

如何用Ajax和RSS制作一個首頁新聞_AJAX教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦:掌握Ajax 第1部分:Ajax簡介
Brett McLaughlin , 作家,編輯, O'Reilly and Associates 2006 年 1 月 04 日 五年前,如果不知道 XML,您就是一只無人重視的丑小鴨。十八個月前,Ruby 成了關注的中心,不知道 Ruby 的程序員只能坐冷板凳了。今天,如果想跟上最新的技術時尚,那您的目標就

如何用Ajax和RSS制作一個首頁新聞

給自己維護的一個小網站加個首頁新聞,瀏覽器用 Ajax 或者 Ajah 從服務器取新聞異步的顯示出來,同時提供 RSS 源供聚合器訂閱。數據可以保存在數據庫中也可以簡單的寫入到服務器的一個文件中,為了靈活起見我就在 MySQL 中新建一個表放站內新聞了,就這么幾個字段:id、title、content、time。新聞錄入和從數據庫中取數據提供給 Ajax/Ajah 請求略。

下面是客戶端 XMLHTTPRequest 的代碼:















 

新聞讀取中……




var req = new XMLHttpRequest();

if( req )

{

req.onreadystatechange = function()

{

var News = "新聞讀取失敗";

try

{

if( req.readyState == 4 && ( req.status == 200 || req.status == 304 ) )

News = req.responseText;

}

catch(e)

{

News = e.description;

}

document.getElementById( 'News' ).innerHTML = News;

};

req.open( 'GET', 'news.php' );

req.send( null );

}






這里唯一值得說明的就是 XMLHTTPRequest 默認是用 UTF-8 傳遞數據的,所以你的數據源最好也用 UTF-8 否則(因為我們這里客戶端已經指定了要用 GB2312 了)得到的會是亂碼,這在 IE 下會引發 JavaScript 錯誤,在 FireFox 下卻沒問題,所以我用 try 和 catch 把上面的代碼包住了,免得測試的時候出現錯誤。如果想試試的話可以用下面的代碼作為 news.php:


echo iconv( "GB2312", "UTF-8", "這就是新聞" );

//echo "這就是新聞";

?>

如果注釋掉第一句而開放第二句的話不僅看到的是亂碼,在 IE 下還會出現 -1072896748 錯誤。有意思的是 IE 好像還會緩存由 XMLHTTPRequest 收到的內容,而 FireFox 則不會,所以在測試中會出現刷新 IE 很多次看到的還是舊數據的問題,可以在程序里加上下面 4 句話解決這個問題:

 

header( "Expires: Mon, 26 Jul 1997 05:00:00 GMT" );

header( "Last-Modified: " . gmdate( "D, d M Y H:i:s" ) . " GMT" );

header( "Cache-Control: no-cache, must-revalidate" );

header( "Pragma: no-cache" );

要將首頁新聞提供給聚合器訂閱就要將后臺輸入的新聞生成 RSS feed,RSS 2.0 的規范可以參考 http://feedvalidator.org/docs/rss2.html,相應的中文翻譯版本可以在 http://www.cpcwedu.com/Document/WEBOfficial/095447158.htm 找到。RSS 格式其實也是 XML 眾多方言中的一種,所以也要以 開頭,根節點的名稱必須是 rss,符合 RSS 2.0 規范的 RSS 中這個 rss 節點要有一個 version="2.0" 的屬性。rss 節點有一個名為 channel 的子節點,channel 就是一個頻道。channel 有 3 個必要的子節點,分別為 title、link 和 description。以 Blog 為例,title 就是 Blog 的名字,link 是 Blog 的 URL 地址,而 description 是 Blog 的描述。

channel 可以包含若干個 item 子節點,在 Blog 中每一個 item 就對應一篇 post,我們這里每一個 item 就是一篇新聞。item 的所有子節點均為可選,但至少要包含 title 和 description,由于新聞要有時間,所以我們再給它加上一個 pubDate 節點,下面就是一個符合 RSS 2.0 規范的 RSS 文件內容:









http://www.mysite.com

Just for testing





Hi, I'm 2ndboy. Welcome to my site!
Sat, 07 Sep 2005 0:00:01 GMT







It's great for using.
Sat, 21 Sep 2005 1:23:45 GMT





 

從數據庫中讀取最新的新聞內容生成 RSS 的代碼這里就不貼了,無非是一些字符串的拼接,當然了,你也可以用 PHP 的 XML DOM 接口來生成這個 RSS 內容。這樣一來在網站上提供 RSS 訂閱就搞定了。在做完 RSS 部分后我突然有了一個想法,為了給使用 Ajax 取數據的瀏覽器提供信息,服務器要針對 Ajax 的請求單獨作些響應處理,那何不就讓瀏覽器把我們前面已經生成了的 RSS 當作數據源來顯示首頁新聞呢?這似乎是個不錯的想法,但 RSS 是個 XML 格式的文件,很顯然,想達到這樣的目的就要讓客戶端用 JavaScript 來解析 XML 文件并加以顯示。為了用 JavaScript 來操控 XML,我決定使用 Google 的一個開源項目——AjaXSLT(http://goog-ajaxslt.sourceforge.net/),更多 Google 開源項目可以訪問 http://code.google.com/。Google 提供的這個 AjaXSLT 項目用 JS 實現了一個 XML 的 DOM 接口和一個 XSLT 實現,下面把里面的幾個主要文件做個簡單介紹:

misc.js:一些常量定義和 helper 函數,還有 log 的實現。dom.js:XML DOM 接口的 JS 實現,主要的函數是 xmlParse( XMLString ),調用成功后就可以用標準 DOM 方式來操控返回的 XDocument 了。

xpath.js:XPath 的 JS 實現。

xslt.js:XSLT 的 JS 實現,要用到里面的 xsltProcess( XML, XSLT ),給定 XML 和 XSLT 得到轉換的結果。

你可以只使用其中的 DOM 實現部分,而 dom.js 又依賴于 misc.js,所以要先載入 misc.js 再載入 dom.js。為了在首頁上顯示好看的新聞,我們要用 CSS 來打扮一下新聞的外觀,所以要對新聞的數據組織方式有些要求,比如說要把得到的新聞最終組織成下面這個樣子

<div id="News"><div class="News">
<span class="Title">title</span>
<span class="Time">time</span>
<span class="Content">content
</span></div>
</div>

 

這樣之后我們就可以事先寫一些針對 #News 和 div.News 等等的規則來裝扮首頁新聞了。好了,下面看看用 JS 解析 RSS 的代碼怎么寫(當然,之前我們先要用 Ajax 取到 RSS 數據):

var News = "";

var doc = xmlParse( rss );

items = doc.getElementsByTagName( "item" );

for( var i = 0; i < items.length; i++ )

{

News += "

";

title = items[i].getElementsByTagName( "title" );

News += ( "" + title[0].firstChild.nodeValue + "<\/span>" );

time = items[i].getElementsByTagName( "pubDate" );

News += ( "" + time[0].firstChild.nodeValue + "<\/span>" );

description = items[i].getElementsByTagName( "description" );

News += ( "" + description[0].firstChild.nodeValue + "<\/span>" );

News += "<\/div>";

}

document.getElementById('News').innerHTML = News;

 

既然 AjaXSLT 提供了 XSLT 的 JS 實現,我們拿來試試。先照著《XML 高級編程》寫個 XSLT:

<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http:
//www.w3.org/1999/XSL/Transform">
<xsl:template match="/"><xsl:apply-templates select="//item"/>
</xsl:template>
<xsl:template match="item"><div class="News">
<xsl:apply-templates select="title"/>
<xsl:apply-templates select="pubDate"/>
<xsl:apply-templates select="description"/>
</div></xsl:template><xsl:template match="title">
<span class="Title"><xsl:value-of select="."/>
</span></xsl:template><xsl:template match="pubDate">
<span class="Time"><xsl:value-of select="."/>
</span></xsl:template><xsl:template match="description">
<span class="Content"><xsl:value-of select="."/></span></xsl:template>
</xsl:stylesheet>

 

上面的 JavaScript 代碼還要把這個 XSLT 從服務器上取下來,之后一句話就可以搞定上面一堆 JS 代碼才能完成的工作:document.getElementById('News').innerHTML = xsltProcess( xmlParse( rss ), xmlParse( xslt ) );

方法就是這樣的。但是請注意,由于 XSLT 在轉換時使用了 XPath,所以要先包含 xpath.js 再引用 xslt.js。

 

分享:怎樣使用JavaScript和Ajax發出異步請求
Brett McLaughlin ,作家,編輯,O'Reilly Media Inc.2006 年 2 月 16 日 多數 Web 應用程序都使用請求/響應模型從服務器上獲得完整的 HTML 頁面。常常是點擊一個按鈕,等待服務器響應,再點擊另一個按鈕,然后再等待,這樣一個反復的過程。有了 Ajax 和 XMLH

來源:模板無憂//所屬分類:AJAX教程/更新時間:2010-06-02
相關AJAX教程
亚洲影院在线播放| 91精品国产吴梦梦| 国产高清一区二区三区四区| 性欧美freehd18| 青青草97国产精品免费观看 | 久久精品99久久| 成人免费网站黄| 亚洲一区导航| 久久久精品麻豆| 久久久久久免费观看| 青青视频一区二区| 中文字幕亚洲综合久久菠萝蜜| 毛片精品免费在线观看| 日本中文字幕网址| 夜夜骚av一区二区三区| 日韩香蕉视频| 欧美日韩激情一区二区| 动漫3d精品一区二区三区 | 萌白酱视频在线| 精品国产一区二区三区不卡蜜臂 | 国产成人精品999| 91视频福利网| 日韩在线观看不卡| 国产精品资源网| 亚洲男人的天堂在线| 九九久久99| 麻豆天美蜜桃91| 欧美综合视频| 欧美日韩国产中文字幕| 91在线视频精品| 91资源在线播放| 激情小说一区| 一区二区三区中文字幕精品精品 | 久久免费视频这里只有精品| 国产日韩欧美久久| 久久uomeier| 成人福利视频网站| 久久亚洲影音av资源网| 亚洲一二三区av| 天天干天天插天天操| 国产高清久久久| 日韩在线观看免费全集电视剧网站 | 九九久久综合网站| 国产三级三级三级看三级| 精品久久人妻av中文字幕| 奇米一区二区三区| 亚洲人免费视频| 欧美色图色综合| 你懂的网站在线| 国产成人亚洲综合a∨婷婷 | 欧美另类69xxxxx| 精品久久在线播放| 久久99导航| 五月婷婷中文字幕| 亚洲欧美日韩视频二区| 日本aⅴ精品一区二区三区| 国产一区二区0| 日韩在线欧美在线国产在线| 天堂社区在线视频| 素人啪啪色综合| 中文字幕国产一区| 国产精品久久视频| 一本在线免费视频| 午夜av一区| 欧美一三区三区四区免费在线看| 久久久成人精品一区二区三区| 一本大道伊人av久久综合| 久久福利视频一区二区| 久久久精品2019中文字幕神马| 在线观看日本一区二区| 91成人福利社区| 亚洲欧美经典视频| 国产精品久久九九| 日本黄色片视频| 老鸭窝亚洲一区二区三区| 亚洲视频在线免费观看| 蜜臀av免费观看| 精品国产亚洲一区二区三区| 亚洲国产日韩综合久久精品| 国产在线精品一区| 国内自拍视频在线播放| 奇米一区二区三区av| 久久伊人色综合| 亚洲av熟女高潮一区二区| 日韩精品丝袜美腿| 色婷婷精品大视频在线蜜桃视频| 五月天亚洲综合| 99热这里只有精品9| 丁香婷婷综合色啪| 全亚洲最色的网站在线观看| 欧美精品一区二区三区久久| 久久久精品三级| 亚洲欧美一级| 亚洲成人你懂的| 欧美日韩三区四区| 亚洲无码精品在线播放| 床上的激情91.| 欧美中文在线字幕| 精品国产视频在线观看| 国产免费成人| 中文字幕久热精品在线视频| 无套白嫩进入乌克兰美女| 台湾佬综合网| 欧美疯狂做受xxxx富婆| 国产在线xxxx| 精品三级在线| 亚洲午夜精品网| 神马影院午夜我不卡| а√天堂资源在线| 国产欧美日韩三区| 成人自拍偷拍| 91在线视频国产| 久久久亚洲综合| 95av在线视频| 亚洲欧美另类在线视频| 国产a级毛片一区| 国产精品美女无圣光视频| 久久久久久久福利| 久久av资源网| 欧美一级大片视频| 麻豆changesxxx国产| 免费在线观看日韩欧美| 性色av香蕉一区二区| 国产美女福利视频| 日本成人在线不卡视频| 97成人在线视频| 久久久久亚洲av片无码下载蜜桃| 蜜臀91精品一区二区三区| 2019精品视频| 国产一级中文字幕| 国产电影精品久久禁18| 国产精品视频久久久久| 色一情一乱一伦| 99久久精品一区| 999在线免费观看视频| 一区二区三区亚洲视频| 国产精品天美传媒| 一区二区中文字幕| 韩国成人动漫在线观看| 国产成人精品av在线观| 国产精品国产自产拍高清av| 日本日本精品二区免费| 亚洲av成人无码网天堂| 亚洲va国产天堂va久久en| 99中文字幕在线观看| 免费一级欧美片在线观看网站| 欧美日本在线观看| 中文字幕第17页| 日韩久久视频| 中文字幕精品www乱入免费视频| 少妇按摩一区二区三区| 久久久久久久高潮| 欧亚精品中文字幕| 国产一区二区99| 337p粉嫩大胆色噜噜噜噜亚洲| 国产乱码精品一区二区三区卡| 亚洲精品综合网| 亚洲成av人在线观看| 性一交一乱一伧国产女士spa| 最新国产一区二区| 精品国产一区二区三区久久影院| 久久国产免费视频| 在线亚洲伦理| 欧美综合第一页| 一级片免费在线播放| 国产亚洲制服色| 亚洲国产欧美日韩| 激情视频亚洲| 亚洲电影av在线| 日韩av手机在线播放| 首页欧美精品中文字幕| 国产精品爽黄69天堂a| 一级黄色片网站| 一区二区国产盗摄色噜噜| av免费观看大全| 国产99亚洲| 久久国产一区二区三区| 波多野结衣亚洲色图| av激情亚洲男人天堂| 久久亚洲国产精品日日av夜夜| 欧美二三四区| 欧美群妇大交群的观看方式| 成人免费播放视频| 久久午夜影视| 成人福利网站在线观看| 亚洲精品97久久中文字幕| 一本大道久久a久久精品综合| 亚洲一级免费观看| 红桃视频国产精品| 国产成人精品久久二区二区91| 中文在线a天堂| 亚洲国产日韩精品| 国产理论在线播放| 国内精品久久久久久久97牛牛 | 美乳视频一区二区| 精品肉辣文txt下载| 欧美一级高清片在线观看| 免费的av网站| 麻豆91精品视频| 国产丝袜不卡| 精品久久在线| 亚洲精品国产拍免费91在线| www.99re6| 99精品在线免费| 色撸撸在线观看| 免费看成人哺乳视频网站| 欧美成人小视频| 亚洲婷婷久久综合| 狠狠久久五月精品中文字幕| 亚洲综合av在线播放| 久久一区视频| 国产美女精品在线观看| 亚洲综合视频| 亚洲精品日韩欧美| 欧美一级高潮片| 日韩理论片一区二区| 精品免费国产一区二区| 亚洲日韩视频| 99精品99久久久久久宅男| 欧美三区四区| 日韩精品亚洲元码| 精品爆乳一区二区三区无码av| 中文字幕欧美激情| 黄色高清无遮挡| 99国产精品视频免费观看一公开 | 日韩精品一区国产麻豆| 欧美日韩生活片| 国产午夜精品一区二区三区嫩草| 野外做受又硬又粗又大视频√| 91精品一区二区三区综合在线爱 | 美女黄网久久| 国产精品午夜av在线| 欧美午夜在线播放| 久久久精品在线| 一级做a爰片久久毛片16| 在线视频国产一区| 欧美特黄一区二区三区| 91一区二区在线| 久激情内射婷内射蜜桃| 亚洲经典三级| 99一区二区| 国产精品videossex| 欧美美女操人视频| 国产suv精品一区二区69| 欧美精品在线视频| 美国黄色片视频| 中文字幕一区二区三区色视频| 少妇黄色一级片| 亚洲国产精品久久人人爱潘金莲 | 亚洲欧美日韩爽爽影院| 国产精品500部| 精品久久久久久中文字幕大豆网| 国偷自产av一区二区三区麻豆| 国产成人一级电影| 国产精品视频一二三四区| 国内精品久久久久国产盗摄免费观看完整版| 国产一区欧美二区三区| 国产精品3区| 九九热这里只有精品6| 亚洲精品国偷拍自产在线观看蜜桃| 欧美草草影院在线视频| 国产真实乱偷精品视频| 黄色成人av在线| 日本高清www| 中文在线免费一区三区高中清不卡| 免费看国产黄色片| 国产揄拍国内精品对白| 佐佐木明希av| 亚洲欧洲视频| 奇米视频888战线精品播放| 欧美三级三级| 成人有码视频在线播放| 最新国产精品精品视频| 欧美一级在线亚洲天堂| www.久久.com| 色综合91久久精品中文字幕 | 成人av片在线观看| 乱人伦xxxx国语对白| 日韩精品电影一区亚洲| 一区不卡视频| 在线观看亚洲| 日韩av一区二区三区在线| 香蕉久久网站| 国内精品久久久久久久果冻传媒| 国产欧美日韩| 99久久国产免费免费| 台湾佬综合网| 亚洲qvod图片区电影| 亚洲裸色大胆大尺寸艺术写真| 国产精品入口尤物| 国产精品一区二区中文字幕| 国产激情综合五月久久| 欧美日韩黄色| 国产成人精品在线| 亚洲精品一区二区三区中文字幕 | 这里只有久久精品| 综合在线观看色| 亚洲欧美日本一区| 亚洲三级小视频| 久久久久久久久久久国产精品| 亚洲欧洲成人精品av97| 制服丝袜第一页在线观看| 国产精品乱人伦中文| 色悠悠在线视频| 国产精品美女视频| 日韩aaaaa| 亚洲狠狠丁香婷婷综合久久久| 精品人妻少妇嫩草av无码| 伊人性伊人情综合网| 三区四区在线观看| 欧美日韩国内自拍| 日韩欧美不卡一区| 麻豆精品国产免费| 欧美日韩在线另类| 久久av高潮av无码av喷吹| 欧美色综合久久| 国产成人愉拍精品久久| 日韩欧美黄色影院| 中文字幕视频一区二区| 亚洲欧美制服第一页| 成人午夜免费福利| 久久这里有精品视频| 成人黄色免费网站| 全球成人中文在线| 欧美日韩一本| 国产精品久久久久久久久婷婷| 亚洲无中文字幕| 在线看成人av电影| 日本不卡免费在线视频| 黑人糟蹋人妻hd中文字幕| 国产91精品欧美| 91大神免费观看| 专区另类欧美日韩| 国产馆在线观看| 欧美日韩国产高清一区二区| 高潮毛片又色又爽免费 | 亚洲中文无码av在线| 亚洲精品视频播放| 亚洲伊人av| 91超碰中文字幕久久精品| 国产欧美三级电影| www.久久久| 国自产拍偷拍福利精品免费一| 黄瓜视频免费观看在线观看www| 麻豆成人91精品二区三区| 99久久国产宗和精品1上映| 久久蜜桃av一区二区天堂| a毛片毛片av永久免费| 色婷婷综合五月| 午夜精品久久久久久久蜜桃| 一区二区三区四区精品| 激情久久一区二区| 国产日韩av高清| 亚洲欧洲日韩| 台湾无码一区二区| av综合在线播放| 黄色工厂在线观看| 91久久香蕉国产日韩欧美9色| 国产一级淫片a视频免费观看| 亚洲日本中文字幕| av成人在线播放| 国产主播精品在线| 欧美aⅴ99久久黑人专区| 日韩精品一区二区三区电影| 国产河南妇女毛片精品久久久 | 国产精品18hdxxxⅹ在线| 国产尤物99| 三级精品在线观看| 一区二区免费av| 一区二区三区美女| 成人免费视频毛片| 最好看的2019年中文视频| 日韩五码电影| 国产伦精品一区二区三区高清版 | 日韩精品视频一区二区| 天天综合色天天综合| 91丝袜一区二区三区| 日韩网站免费观看| 久久精品66| 亚洲欧美精品| 精品午夜福利在线观看| 日韩精品视频在线观看网址 | 欧美成人精品xxx| 卡通动漫精品一区二区三区| 欧美日韩一区二| 国产精品一区二区在线观看网站| 91丝袜在线观看| 欧美日韩欧美一区二区| 亚洲成熟女性毛茸茸| 国产精品96久久久久久| 综合久久99| 亚洲色精品三区二区一区| 一区二区三区日韩欧美精品| 可以在线观看av的网站| 日韩在线视频免费观看高清中文| 超碰地址久久| 尤物一区二区三区| 91美女片黄在线观看91美女| jizzjizz日本少妇| 日韩av在线资源|