cpw: Überprüfen des Funktions-Status in AJAX aus anderer Funktion

Beitrag lesen

ajax.onreadystatechange = function() {
   if(ajax.readyState == 4) {
      daten = ajax.responseXML.documentElement;

zeigMirDieDaten();
   }
};

Args... ich glaube ich arbeite zuviel ;-) Klar, die Funktion erst in der "ReadyState-Funktion" aufrufen liegt nah. Vielen Dank für den Tip!

Muß es unbedingt AJAX sein?

Ja. Ich brauche einen Datei- bzw. Datenbankzugriff über PHP, ohne die Seite neu zu laden - das wird ohne AJAX nicht funktionieren.

Das erspart dem Benutzer übrigens auch die frustrierende Meldung, er würde den falschen Browser benutzen.

Wenn er diese frustrierende Meldung bekommt, hat er auch allen Grund frustriert zu sein :-) AJAX wird seit ich-weiß-nicht-wann allgemein unterstützt, der IE kann das z.B. mindestens seit Version 5.5 (ich glaube sogar ab 5.0, kann ich nur leider nicht ausprobieren, da sich diese Version bei mir im MultipleIE ständig aufhängt), und schon bei Windows 2000 (ca. acht Jahre alt...) war der 5.5 serienmäßig dabei. Halbwegs aktuelle Versionen von Firefox, Netscape, Opera, Safari und Konqueror haben auch kein Problem damit.

Außerdem wären dann auch Google Maps, Map24 und zahlreiche andere auf AJAX basierende Seiten nicht zu verwenden. Super verbleit gibt's an der Tankstelle auch nicht mehr, da wird's halt mal Zeit für ein neues Auto ;-)

Davon abgesehen ist AJAX eine der bookmark-unfreundlichsten Techniken, die mir in letzer Zeit über den Weg gelaufen ist.

Das stimmt schon, aber ich möchte mal behaupten, dass es in einer "üblichen" AJAX-Anwendung (wie z.B. Google Maps, einem Fahrzeugkonfigurator oder ähnlichem) auch nicht viel zu bookmarken gibt. Ich baue ja nicht z.B. die Navigation einer Seite oder ähnliches damit.

utf-8 ist meines Wissens ohnehin der Default-Mime-Type.

In meinem letzten AJAX-Projekt gab's da z.T. böse Probleme in der AJAX-PHP-MySQL-Kette, darum geb' ich grundsätzlich überall explizit UTF-8 an, sonst schleicht sich in bestimmten Konstellationen irgendwo in der Kette immer noch ISO-8859-1 ein und sorgt für unlesbare Unlaute etc.

Gruß, Christian