Asynchrone Abfragen in Javascript mit XMLHttpRequest

Auf einer Subversion Willkommens- und Übersichtsseite unter einem Apache2 sollten ein paar Statistiken erscheinen. Da das Ermitteln der Daten im Moment des Seitenabrufs zu lange dauerte (Anzahl Dateien, freier Speicherplatz, letzten 10 Comitter, …) wollte ich das mit asynchronen Abfragen an den Web-Server lösen. Dazu sollte das XMLHttpRequest() Objekt verwendet werden.

Hier ist eine zusammengestutze, beispielhafte Lösung dafür.

Die Webseite index.html:

<html>
<body>
Anzahl Dateien: <strong id="anzahl">--</strong><br />
<script language="javascript">
var xmlHttpReq = null;

   try { xmlHttpReq = new XMLHttpRequest(); }
   catch(e) {
      try { xmlHttpReq = new ActiveXObject( "Microsoft.XMLHTTP" ); }
      catch(e) {
         try { xmlHttpReq = new ActiveXObject( "Msxml2.XMLHTTP" ); }
         catch(e) { xmlHttpReq = null; }
         }
      }

   if( xmlHttpReq ) {
      xmlHttpReq.open( 'GET', 'get_file_count.php', true );
      xmlHttpReq.onreadystatechange = function() {
         if( 4 == xmlHttpReq.readyState ) {
            var obj = document.getElementById( 'anzahl' );
            obj.innerHTML = xmlHttpReq.responseText;
            }
         }
      xmlHttpReq.send(null);
      }
</script>
</body>
</html>

Das PHP-Script, welches die Anzahl Dateien ermittelt und vom Web-Browser aufgerufen wird get_file_count.php:

<?php system( 'ls -lR /home | wc -l' ); ?>

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.