RSS ist ein XML-basierter Dateistandard. Der Austausch von Inhalten zwischen Websites kann problemlos über XML-Dateien erreicht werden, die der RSS-Spezifikation entsprechen. Ajax ist die Abkürzung für Asynchronous JavaScript and XML. Mit der Ajax-Technologie können Sie über das Hypertext Transfer Protocol (Http) eine Anfrage an einen Server stellen und mit der Verarbeitung zusätzlicher Daten fortfahren, während Sie auf die Antwort warten. Das Lesen von Remote-XML-Dateien kann problemlos durch die Ajax-Technologie erreicht werden, um aus der Ferne auf zusammenfassende Informationen zuzugreifen, die gemäß dem RSS-Standard generiert wurden. Wir können sogar selbst einen RSS-Reader schreiben.
Ajax ist keine neue Sprache oder Technologie, sondern mehrere Technologien, die auf eine bestimmte Weise kombiniert werden. Sie alle spielen ihre jeweilige Rolle in der Zusammenarbeit, die Folgendes umfasst: Verwendung von XHTML und CSS für die standardisierte Darstellung; Verwendung von XML und XSLT für den Datenaustausch und -verarbeitung und schließlich die Verwendung von JavaScript; zum Binden und Verarbeiten aller Daten. Okay, reden wir nicht mehr über die Theorie. Schauen wir uns den Code direkt an.
Erstellen Sie ein XMLHttpRequest-Objekt und senden Sie die Anfrage an den Server:
Kopieren Sie den Codecode wie folgt:
Funktion createXHR(url){
if(window.XMLHttpRequest){
xmlHttp = new XMLHttpRequest();
}anders{
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);
}
Durchlaufen Sie das RSS-Dokument durch DOM-Operationen, um den erforderlichen Wert zu erhalten:
Kopieren Sie den Codecode wie folgt:
Funktion 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;
}
}
Rufen Sie die Funktion „createXHR(url)“ auf, übergeben Sie die Parameter und senden Sie die Anfrage an den Server:
Kopieren Sie den Codecode wie folgt:
createXHR("http://www.apple.com.cn/hotnews/rss/hotnews.rss");
Antwort erhalten:
Kopieren Sie den Codecode wie folgt:
Funktion getResponse(){
if(xmlHttp.readyState == 4){
if(xmlHttp.status == 200){
rssDoc = xmlHttp.responseXML;
readDoc(rssDoc);//Rufen Sie die Funktion readDoc() auf
}anders{
document.getElementById("rssTitle").innerHTML = "Ausnahme lesen!";
//alert(xmlHttp.status);
}
}
}