Ajax optimal einsetzen

Wie bereits erwähnt, muss eine Methode definiert werden, die aufgerufen werden soll, wenn sich der Abfragezustand ändert. Dies geschieht, indem man die Eigenschaft onreadystatechange setzt. Man beachte, dass es dabei um eine Zustandsänderung geht, nicht um eine Vervollständigung – das sind zwei völlig unterschiedliche Dinge. Am besten lässt sich dies an einem Beispiel zeigen, das alle bisherigen Ausführungen einschließt. Das Folgende soll in einer Datei abgelegt werden:


In der abgefragten Datei kann dies mit allem was man will ersetzt werden, der Inhalt wird noch nicht verwendet werden, es soll nur gefunden werden können.

Es ist zu bemerken, dass bei erfolgter Eingabe mehrfach die Meldung readystate erscheint und schließlich angezeigt wird, dass der readyState gleich 4 ist. Verschiedene Browser verfahren hier in unterschiedlicher Weise, in Safari wird nett von 0-4 gezählt, aber in Firefox erscheint die 1 zweimal und die 0 nur im ersten Durchlauf. Hier interessiert zum Glück lediglich der readyState 4, doch der Vollständigkeit halber hier die Bedeutung der verschiedenen Zahlen:

  • 0: nicht initialisiert – das Objekt enthält keine Daten, open wurde noch nicht aufgerufen
  • 1: das Objekt lädt seine Daten – send wurde noch nicht aufgerufen
  • 2: geladen – die Abfrage wurde gesendet
  • 3: interaktiv – die Abfrage wird bearbeitet, erste Daten sind unter Umständen verfügbar, die Daten sind jedoch nicht vollständig und daher unsicher
  • 4: vollständig – die Abfrage ist vollständig und die Daten können sicher verwendet werden

Dank dieser Informationen kann nun die Methode myReturnMethod so geändert werden, dass der Hinweis nur erscheint, wenn die Abfrage vollständig ist.


Abfragestatus

Unter Verwendung des letzten Codes werden nun die URL-Parameter der Methode open geändert und auf eine Datei gelegt, die nicht existiert.


Wird der Code nun ausgeführt, ist das Ergebnis genau dasselbe wie beim alten Code – was ist hier geschehen?

Wäre dies eine normale http-Abfrage würde man eine 404-Fehlermeldung erwarten – unter Ajax gilt dasselbe in Bezug auf die Eigenschaft status. Diese Eigenschaft kann nur gelesen werden und enthält den http-Statuscode der Abfrage, im Falle der vorliegenden Datei lautet dieser 404. Unter Ajax gelten die gleichen Statuscodes, die man bereits von normalen http-Abfragen her kennt. (Damit dies richtig funktioniert, sollte man die Seite von einem http-Server anfordern; wird sie aus dem Dateisystem gelesen, ist der Statuscode immer undefiniert.)

Es muss daher ein if-Statement hinzugefügt werden, das überprüft, ob eine Abfrage erfolgreich war. Wenn ja, wird der Antwortcode 200 gesendet. War sie nicht erfolgreich, muss eine Reaktion auf den Fehler möglich sein.


Themenseiten: Anwendungsentwicklung, Software

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

Artikel empfehlen:

Neueste Kommentare 

Noch keine Kommentare zu Ajax optimal einsetzen

Kommentar hinzufügen

Schreibe einen Kommentar

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