AJAX

From no name for this wiki
Revision as of 08:33, 9 May 2008 by Admin (talk | contribs)
Jump to: navigation, search

AJAX (Asynchronous JavaScript and XML)

Hello World

Einfaches AJAX Sample für Java Server Pages.

Parsen eines Response XML Dokuments

Ein Request liefert ein XML Dokument. Dieses wird dann in der statechanged Methode geparst und in einen HTML Table transformiert.

txt="<table>";
x=xmlhttp.responseXML.documentElement.getElementsByTagName("book");
for (i=0;i<x.length;i++)
{
 txt=txt + "<tr>";
 xx=x[i].getElementsByTagName("title");
   {
   try
     {
     txt=txt + "<td>" + xx[0].firstChild.nodeValue + "</td>";
     }
   catch (er)
     {
     txt=txt + "<td> </td>";
     }
   }
 xx=x[i].getElementsByTagName("author");
   {
   try
     {
     txt=txt + "<td>" + xx[0].firstChild.nodeValue + "</td>";
     }
   catch (er)
     {
     txt=txt + "<td> </td>";
     }
   }
 txt=txt + "</tr>";
 }
 txt=txt + "</table>";
 document.getElementById('copy').innerHTML=txt;

Node Value holen

Aus dem XML Snippet <compname>CocaCola</compname> den Node-Value (CocaCola) auslesen.

var xmlDoc=xmlHttp.responseXML.documentElement;
document.getElementById("companyname").innerHTML =
xmlDoc.getElementsByTagName("compname")[0].childNodes[0].nodeValue;

XML auf dem Server erzeugen (MIME)

Damit Firefox das XML Parsen kann, muss der Contenttype gesetzt werden. Mit Java sieht es wie folgt aus:

response.setContentType("xml/text");

Dann erst kann die Funktion xmlhttp.responseXML.documentElement aufgerufen werden. Reicht Text, dann muss der MIME Type nicht gesetzt werden: xmlhttp.responseText.