一起草最新网址_日韩一区二区麻豆国产_91视频婷婷_日本一区二区视频在线_日韩激情一区二区三区_国产另类第一区_成人免费在线播放视频_亚洲永久精品ww.7491进入_久久这里有精品视频_久久精品一级片_日韩av在线网页_波多野结衣不卡视频

如何用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教程
国产成人无遮挡在线视频| 国产高潮在线观看| 欧美一级片免费观看| 国产偷国产偷亚洲清高网站 | 亚洲天堂一区二区在线观看| 粉嫩精品一区二区三区在线观看 | 高清国产午夜精品久久久久久| 久久精品久久99精品久久| 欧美一级特黄高清视频| 欧美一区二区三区影院| 91极品视频在线观看| 国产成人91久久精品| 国产成人亚洲综合91| 国产精品免费观看在线| av观看久久| 先锋影音网一区| 久久99中文字幕| 欧美一级视频在线| 69精品无码成人久久久久久| 69xx绿帽三人行| 久久亚洲精品石原莉奈| 五月天婷婷社区| 成人综合在线网站| 亚洲精品日韩综合观看成人91| 欧美日韩在线视频一区| 亚洲国产小视频在线观看| 久久国产精品久久久久久| 国产精品美乳一区二区免费| 欧美日本韩国一区二区三区| 国产午夜大地久久| 人妻av一区二区| 亚洲国产成人精品激情在线| 日本毛片在线观看| 久久综合精品国产一区二区三区| 亚洲6080在线| 亚洲美女黄色片| 国产成人精品优优av| 四虎一区二区| 亚洲欧美一区二区三区不卡| 丁香花五月激情| 亚洲精品国产手机| 国产亚洲精品超碰| 正在播放亚洲一区| 91国产精品电影| 日韩高清av| 99国产精品免费视频| 中文字幕一区二区三区精品| 日本欧美一区二区在线观看| 自拍偷在线精品自拍偷无码专区 | 国产精品无码久久av| 国产成人高清在线| 色老汉av一区二区三区| 蜜臀久久99精品久久久久久宅男| 国产精品久久久久久久久久久久午夜片 | 色婷婷激情综合| 久久成人精品电影| 日韩成人在线资源| 天堂久久久久久| 超碰人人人人人人| 亚洲欧美偷拍卡通变态| 亚洲国产美女久久久久| 国产专区欧美专区| 激情综合网俺也去| 天天操夜夜操视频| 久久蜜桃一区二区| 日韩精品中文字| 精品国产乱码久久久久久丨区2区| 日本黄大片一区二区三区| 色播视频在线播放| 99久久国产综合精品女不卡| 日韩欧美国产一区在线观看| 国产精品亚发布| 爱情岛论坛成人| 国产精品视频123| aaa国产一区| 亚洲精品美女免费| 欧洲在线视频一区| 欧美18—19性高清hd4k| 久久成人羞羞网站| 欧美一区二区视频免费观看| 91手机在线观看| 四虎精品一区二区| 日韩精品成人一区二区三区| 欧美性xxxxxx少妇| 成人黄色中文字幕| 国模无码视频一区| 免费精品99久久国产综合精品| 欧洲日韩一区二区三区| 91中文字幕一区| 波多野结衣影院| 久久国产精品免费| 亚洲成人黄色在线| 一本一本a久久| 黄色一级视频免费观看| 国产午夜精品久久久久久免费视 | 中文字幕日本不卡| 欧美精品激情blacked18| 日韩精品视频久久| 亚洲乱码精品久久久久..| 欧美视频专区一二在线观看| 国产自摸综合网| 欧美做受高潮6| 国产jizzjizz一区二区| 在线观看亚洲区| av免费观看网| 亚洲欧美激情在线观看| 欧美一区二区三区在线观看视频| 欧美日韩在线精品| 欧美福利在线视频| 国产精品三级电影| 国产精品久久久久久久美男| 久久人妻一区二区| av电影天堂一区二区在线观看| 正在播放欧美视频| 艹b视频在线观看| 日韩成人免费看| 亚洲美女免费精品视频在线观看| 国产大尺度在线观看| 国语对白做受69按摩| 天天综合网天天综合色| 亚洲成a人片在线观看中文| 97久久久久久| 天堂www中文在线资源| 日本不卡一区二区| 精品亚洲国产成av人片传媒 | 丰满少妇中文字幕| 国产一区二区三区四区在线观看| 中文字幕欧美专区| 欧美大片久久久| av电影天堂一区二区在线观看| 欧美精品久久久久| 精品国产av色一区二区深夜久久 | 最近中文字幕日韩精品 | 国产欧美精品久久久| 久久精品—区二区三区舞蹈| 成人欧美一区二区三区| 91久久偷偷做嫩草影院| 日韩精品在线免费视频| 欧美日韩在线观看一区二区| 国产激情片在线观看| 人妻妺妺窝人体色www聚色窝| 伊人青青综合网站| 97人妻精品一区二区三区免费| 久久久99免费| 国产精成人品localhost| 午夜毛片在线观看| 亚洲第一网站男人都懂| 一起操在线视频| 国产视频一区二区三区在线观看| 91精品视频播放| 日韩特级黄色片| 日韩av在线网| xxxx黄色片| 亚洲午夜电影在线观看| 熟妇熟女乱妇乱女网站| 极品美女销魂一区二区三区免费| 国产成人鲁鲁免费视频a| 久久老司机精品视频| 日韩欧美一区二区在线视频| 中文字幕在线观看第三页| 久久久久久久精| 国产精品v欧美精品∨日韩| 欧美性受xxx黑人xyx性爽| 亚洲无线码在线一区观看| 色天使在线视频| 色天使久久综合网天天| 日韩一级免费在线观看| 中文字幕国产精品一区二区| 亚洲国产高清国产精品| 久久www免费人成看片高清| 国产精品网址在线| 国产特级aaaaaa大片| 九九热精品视频在线播放| 久久久香蕉视频| 一本大道久久加勒比香蕉| 韩国女同性做爰三级| 欧美在线|欧美| 999久久久精品视频| 午夜日韩在线观看| jizz大全欧美jizzcom| 一区二区在线观看免费| 黄色片久久久久| 中文一区二区在线观看| 潘金莲一级淫片aaaaa免费看| 国产一区二区0| 免费电影一区| 成人黄色国产精品网站大全在线免费观看| www 成人av com| 蜜桃精品在线观看| 精品一区二区三区自拍图片区| 麻豆91在线观看| 久久精品国产一区二区三区日韩| 久久精品99国产精品| 久久综合毛片| 东方欧美亚洲色图在线| 亚洲高清在线观看一区| 久久久久久日产精品| 51xx午夜影福利| 综合欧美一区二区三区| 爱情岛论坛成人| 日本精品一区二区三区高清| 精品无码人妻少妇久久久久久| 欧美一卡二卡在线| 国产传媒免费在线观看| 在线播放日韩精品| 国产精品欧美综合| 国产精品久久99久久| 天堂网av在线播放| 国产一区二区三区色淫影院| 成人精品一区二区三区中文字幕 | 国产在线观看第一页| 97久久精品人搡人人玩| 污视频在线免费观看| 久久国产一区| 欧美国产精品中文字幕| 亚洲国产精品三区| 日韩一区二区三区电影在线观看| 午夜精品久久久久99蜜桃最新版| 日韩亚洲精品电影| 国产成人麻豆精品午夜在线| 97netav| 国产乱码一区二区三区四区| 国产 国语对白 露脸| 中文av字幕一区| 精品久久久久久中文字幕2017| 午夜久久久久久久久| 亚洲小视频在线| 国产一级一片免费播放| 日本成人在线视频网址| 麻豆精品国产传媒mv男同| 隔壁人妻偷人bd中字| 欧美色网一区二区| 日韩欧美a级片| 成人免费午夜电影| 国产农村妇女精品| 成人性生活免费看| 欧美激情精品在线| 国产精品一区二区在线观看网站 | 亚洲欧美中文日韩在线| 中文字幕乱码在线观看| 欧美伦理一区二区| 一区二区在线免费| 性欧美疯狂猛交69hd| 国产精品成人v| 99re视频精品| 97超碰免费在线观看| 自拍偷拍亚洲欧美| 丝袜美腿高跟呻吟高潮一区| 人妻少妇精品久久| 亚洲成人三级在线| 日本xxxx人| av日韩一区二区三区| 欧美一级日韩免费不卡| 91久久国语露脸精品国产高跟| 欧美日韩在线一区二区三区| 亚洲高清免费一级二级三级| 青娱乐免费在线视频| 国产精品sss| 一本色道a无线码一区v| 激情视频网站在线观看| 免费精品视频一区| 日本道免费精品一区二区三区| 一级成人黄色片| 亚洲免费精品视频| 欧美妇女性影城| 成人小说亚洲一区二区三区| 鲁一鲁一鲁一鲁一色| 一区二区三区四区精品| 国产麻豆成人传媒免费观看| 9191在线视频| 国产精品成人免费电影| 亚洲资源在线观看| 久久精品久久久久久久| 国产大尺度在线观看| 日韩av综合中文字幕| 久久97超碰色| 亚洲天堂成人av| 亚洲综合国产精品| 欧美午夜免费电影| 日韩有码第一页| 天天干天天综合| …久久精品99久久香蕉国产| 久久久久久夜精品精品免费| 国产亚洲第一页| 图片区小说区区亚洲五月| 欧美sm美女调教| 捆绑变态av一区二区三区| 亚洲制服丝袜在线播放| **亚洲第一综合导航网站| 欧美日韩一区久久| 日韩av网站免费在线| 国产白嫩美女无套久久| 高清视频一区| 欧美videofree性高清杂交| 精品在线免费观看| 日韩毛片无码永久免费看| 精品国产乱码久久久久| 亚洲成人教育av| k8久久久一区二区三区| 国产网友自拍视频| 欧美黑人经典片免费观看| 欧美精品www| 夜夜操天天操亚洲| 成人毛片在线精品国产| 五月开心播播网| 日产精品一线二线三线芒果| 中文精品99久久国产香蕉| 欧美激情一区在线| 国产精品毛片一区视频播| 国产又粗又猛又爽又黄| 国产色综合一区二区三区| 亚洲男人的天堂在线播放| 欧美激情综合五月色丁香小说| 中日精品一色哟哟| 911av视频| 欧美日韩一区二区三区在线视频| 尤物tv国产一区| 亚洲综合视频在线观看| 精品国产无码AV| 中文字幕高清视频| www.-级毛片线天内射视视| 78色国产精品| 51午夜精品国产| 久久久久久一级片| 亚洲精华国产精华精华液网站| 在线免费观看a级片| 一区二区免费在线视频| 4p变态网欧美系列| 欧美电视剧在线看免费| 国产精品久久久久久久久图文区| 国产日产亚洲系列最新| 无码国产69精品久久久久同性| 天堂а√在线中文在线| 国产精品第一第二| 亚洲激情 国产| 亚洲一区在线看| 国产福利一区二区三区在线视频| 欧美一区二区三区不卡视频| 中文字幕人妻熟女在线| 亚洲一区 在线播放| 国产欧美精品日韩精品| 夜夜嗨av色综合久久久综合网| 亚洲福利视频一区| 国产ts人妖一区二区| 99国产精品久久久久久久成人| 长河落日免费高清观看| 爆乳熟妇一区二区三区霸乳| 精品在线视频一区二区三区| 国模吧一区二区| 精品精品欲导航| 午夜亚洲福利老司机| 2020国产精品自拍| 天堂成人国产精品一区| 男人天堂av在线播放| 日本少妇高潮喷水xxxxxxx| 三级4级全黄60分钟| 日本亚洲导航| 国产视频福利一区| 九九综合九九综合| 精品久久久久久久一区二区蜜臀| 亚洲成av人片一区二区梦乃| 久久影音资源网| 九九**精品视频免费播放| 国产精品国产精品国产专区| 黄色香蕉视频在线观看| 欧美xxxxx精品| 伊人影院综合在线| 久久视频这里有精品| 一区二区三区观看| 久久精品综合一区| 亚洲一区亚洲二区| 国产成人精品久久二区二区91 | 亚洲成a人在线观看| 欧美国产日韩a欧美在线观看| 秋霞影院一区二区| 亚洲精品18在线观看| 伊人影院中文字幕| 国产精品第5页| 麻豆疯狂做受xxxx高潮视频| 亚洲精品成人无码| 中文字幕乱码在线人视频| 簧片在线免费看| 成人观看免费完整观看| www.国产在线播放| 三级网在线观看| 伊人久久大香线蕉午夜av| 免费观看国产成人| 美脚丝袜一区二区三区在线观看| 99久久精品免费看国产一区二区三区 | 91女神在线视频| 国产乱国产乱300精品| 精品一区二区在线免费观看| 免费成人性网站| 美女视频网站久久| 久久精品国产精品亚洲综合| 日韩专区中文字幕一区二区| 天天操天天干天天爽| 天堂av一区二区三区| 日韩国产欧美在线观看| 黄色片网站在线播放| 精品国产一区二区三区久久久蜜月 | 久久久久久九九九九九| 中文成人无字幕乱码精品区| xfplay5566色资源网站| 国产视频精品视频| 日本成人免费视频| 久久久久久天堂| 日韩综合在线观看| 中文字幕久久网| 亚洲精品国产精品国|