RSS est une norme de fichier basée sur XML. Le partage de contenu entre sites Web peut être facilement réalisé via des fichiers XML conformes à la spécification RSS. Ajax est l'abréviation de JavaScript et XML asynchrones. La technologie Ajax permet de faire une requête à un serveur via Hypertext Transfer Protocol (Http) et de continuer à traiter des données supplémentaires en attendant la réponse. La lecture de fichiers XML à distance peut être facilement réalisée grâce à la technologie Ajax. Par conséquent, la technologie Ajax peut être utilisée pour accéder à distance aux informations récapitulatives générées selon la norme RSS. Nous pouvons même écrire nous-mêmes un lecteur RSS.
Ajax n'est pas un nouveau langage ou une nouvelle technologie, il s'agit en fait de plusieurs technologies combinées d'une certaine manière. Ils jouent tous leurs rôles respectifs dans la collaboration, qui comprend : l'utilisation de XHTML et CSS pour une présentation standardisée ; l'utilisation de DOM pour l'affichage et l'interaction dynamiques ; l'utilisation de XML et XSLT pour l'échange et le traitement des données et enfin l'utilisation de JavaScript ; pour lier et traiter toutes les données. Bon, ne parlons pas davantage de la théorie. Regardons directement le code.
Créez un objet XMLHttpRequest et envoyez la requête au serveur :
Copiez le code comme suit :
fonction createXHR(url){
si(window.XMLHttpRequest){
xmlHttp = nouveau XMLHttpRequest();
}autre{
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);
}
Parcourez le document RSS via les opérations DOM pour obtenir la valeur requise :
Copiez le code comme suit :
fonction readDoc(doc){
racine = doc.getElementsByTagName("channel")[0];
docTitle = root.getElementsByTagName("titre")[0];
docLink = root.getElementsByTagName("link")[0];
docDescription = root.getElementsByTagName("description")[0];
items = root.getElementsByTagName("item");
pour(var i=0;i<items.length;i++){
itemTitle = items[i].getElementsByTagName("titre")[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 = "aucun";
document.getElementById("printRss").getElementsByTagName("span")[0].style.display = "none";
document.getElementById("printRss").innerHTML = document.getElementById("printRss").innerHTML + temp;
}
}
Appelez la fonction createXHR(url), transmettez les paramètres et envoyez la requête au serveur :
Copiez le code comme suit :
createXHR("http://www.apple.com.cn/hotnews/rss/hotnews.rss");
J'ai eu une réponse :
Copiez le code comme suit :
fonction getResponse(){
si(xmlHttp.readyState == 4){
si(xmlHttp.status == 200){
rssDoc = xmlHttp.responseXML ;
readDoc(rssDoc);//Appelez la fonction readDoc()
}autre{
document.getElementById("rssTitle").innerHTML = "Exception de lecture !";
//alerte(xmlHttp.status);
}
}
}