国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > AJAX > 正文

Javascript Ajax異步讀取RSS文檔具體實現(xiàn)

2024-09-01 08:32:25
字體:
供稿:網(wǎng)友
這篇文章主要介紹了Javascript Ajax異步讀取RSS文檔具體實現(xiàn),有需要的朋友可以參考一下

RSS 是一種基于 XML的文件標(biāo)準(zhǔn),通過符合 RSS 規(guī)范的 XML文件可以簡單實現(xiàn)網(wǎng)站之間的內(nèi)容共享。Ajax 是Asynchronous JavaScript and XML的縮寫。通過 Ajax 技術(shù)可以經(jīng)由超文本傳輸協(xié)議(Http) 向一個服務(wù)器發(fā)出請求并且在等待該響應(yīng)時繼續(xù)處理另外的數(shù)據(jù)。通過 Ajax 技術(shù)可以很容易實現(xiàn)讀取遠(yuǎn)程 XML文件,因此,可以使用 Ajax技術(shù)實現(xiàn)遠(yuǎn)程訪問依據(jù) RSS 標(biāo)準(zhǔn)生成的摘要信息,甚至我們可以自己寫一個 RSS 閱讀器。

        Ajax 并不是一門新的語言或技術(shù), 它實際上是幾項技術(shù)按一定的方式組合在一起。共同在協(xié)作中發(fā)揮各自的作用, 它包括:使用XHTML 和CSS 標(biāo)準(zhǔn)化呈現(xiàn); 使用DOM 實現(xiàn)動態(tài)顯示和交互; 使用XML 和XSLT 進(jìn)行數(shù)據(jù)交換與處理; 使用XMLHttpRequest進(jìn)行異步數(shù)據(jù)讀取; 最后用 JavaScript 綁定和處理所有數(shù)據(jù)。好了,對于理論就不在多說了,下面我們直接看代碼吧。

        創(chuàng)建XMLHttpRequest對象并將請求發(fā)送到服務(wù)器:

復(fù)制代碼 代碼如下:


function createXHR(url){
     if(window.XMLHttpRequest){
         xmlHttp = new XMLHttpRequest();
     }else{ 
       xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlHttp.open("post",url,"false");
    xmlHttp.onreadystatechange = getResponse;     xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xmlHttp.send(null);
 }

通過DOM操作對Rss文檔進(jìn)行遍歷,得到需要的值:

復(fù)制代碼 代碼如下:


function readDoc(doc){
    root = doc.getElementsByTagName("channel")[0];
    docTitle = root.getElementsByTagName("title")[0];
    docLink = root.getElementsByTagName("link")[0];
    docDescription = root.getElementsByTagName("description")[0];
    items = root.getElementsByTagName("item");
    for(var i=0;i<items.length;i++){
        itemTitle = items[i].getElementsByTagName("title")[0];
        itemLink = items[i].getElementsByTagName("link")[0];
        itemDescription = items[i].getElementsByTagName("description")[0];
        //itemPubDate = items[i].getElementsByTagName("pubDate")[0];
        document.getElementById("rssTitle").innerHTML = docTitle.firstChild.nodeValue;
        temp = "</h1><h2><a href=""+itemLink.firstChild.nodeValue+"" target="_blank">"+itemTitle.firstChild.nodeValue+"</a></h2>"+"<p>"+itemDescription.firstChild.nodeValue+"</p><hr/>";
        document.getElementById("readRss").style.display = "none";
        document.getElementById("printRss").getElementsByTagName("span")[0].style.display = "none";
        document.getElementById("printRss").innerHTML = document.getElementById("printRss").innerHTML + temp;
    }
}

調(diào)用createXHR(url)函數(shù),傳入?yún)?shù),向服務(wù)器發(fā)送求:

復(fù)制代碼 代碼如下:


createXHR("http://www.apple.com.cn/hotnews/rss/hotnews.rss");

得到響應(yīng):

復(fù)制代碼 代碼如下:


function getResponse(){
   if(xmlHttp.readyState == 4){     
        if(xmlHttp.status == 200){ 
            rssDoc = xmlHttp.responseXML;
            readDoc(rssDoc);//調(diào)用readDoc()函數(shù)
        }else{
            document.getElementById("rssTitle").innerHTML = "讀取異常!";
            //alert(xmlHttp.status);
        }
    }
}

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 黔西| 堆龙德庆县| 保山市| 南康市| 渝中区| 铁力市| 大荔县| 绍兴市| 凤翔县| 宿松县| 都安| 革吉县| 崇礼县| 武宣县| 余庆县| 札达县| 长沙县| 岱山县| 白玉县| 聂拉木县| 宣汉县| 来安县| 万盛区| 靖边县| 文安县| 黄梅县| 徐水县| 新龙县| 沙坪坝区| 亚东县| 喀什市| 额敏县| 隆林| 奉节县| 宿州市| 师宗县| 延边| 青岛市| 沁水县| 襄樊市| 岳池县|