最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2013年12月12日 15:03:11   作者:  
這篇文章主要介紹了Javascript Ajax異步讀取RSS文檔具體實現(xiàn),有需要的朋友可以參考一下

RSS 是一種基于 XML的文件標準,通過符合 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)讀取遠程 XML文件,因此,可以使用 Ajax技術(shù)實現(xiàn)遠程訪問依據(jù) RSS 標準生成的摘要信息,甚至我們可以自己寫一個 RSS 閱讀器。

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

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

復制代碼 代碼如下:

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文檔進行遍歷,得到需要的值:

復制代碼 代碼如下:

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ā)送求:

復制代碼 代碼如下:

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

得到響應(yīng):

復制代碼 代碼如下:

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);
        }
    }
}

相關(guān)文章

最新評論

浦城县| 舟曲县| 天祝| 东乌| 木兰县| 青田县| 阿鲁科尔沁旗| 秀山| 宁陕县| 喀喇沁旗| 井冈山市| 宁国市| 启东市| 海盐县| 睢宁县| 呼和浩特市| 丰都县| 达州市| 太和县| 元氏县| 元阳县| 马龙县| 巴青县| 娄底市| 常宁市| 博客| 赣州市| 武邑县| 玛沁县| 施甸县| 伊春市| 汉源县| 彰化市| 田阳县| 九龙城区| 余庆县| 武川县| 衡山县| 合作市| 白山市| 潍坊市|