Ajax optimal einsetzen

Jetzt, wo ein XMLHttpRequest angelegt werden kann, muss noch bestimmt werden, wann es erzeugt wird. Obwohl noch keine Abfrage getätigt wurde, ist doch absehbar, dass man das XMLHttpRequest-Objekt vor dem Versenden von Abfragen instanziieren oder das Objekt bei Bedarf innerhalb einer Methode anlegen kann.

Ein Problem beim Anlegen des Objekts bei Bedarf besteht darin, dass es keine Informationen darüber gibt, ob der Client ein XMLHttpRequest-Objekt anlegen kann oder nicht. Wenn ein Nutzer auf die programmierte Seite zugreift, der kein XMLHttpRequest-Objekt anlegen kann, ist dieses Problem viel einfacher zu lösen, wenn man so früh wie möglich weiß, dass Ajax hier nicht verwendet werden kann.

Es ist niemals von Vorteil, wenn ein Nutzer erst einmal mit einer Web-Anwendung interagieren muss, damit diese ihm nach dem Ausfüllen eines Formulars dann mitteilt, dass er die jeweilige Funktion leider nicht nutzen kann.

Wenn aber bereits am Beginn der Seite versucht wird, ein XMLHttpRequest-Objekt zu erzeugen, eröffnen sich Alternativen, wie zum Beispiel, den Nutzer auf eine Seite ohne Ajax umzuleiten bevor die Interaktion beginnt.

Die Abfrage einrichten

Bisher wurde eine Seite geschrieben, die ein XMLHttpRequest-Objekt erzeugt, wenn sie geladen wird. Nun soll sie zu dem Zweck nutzbar gemacht werden, für den sie geschrieben wurde – Abfragen.

Dafür müssen mindestens zwei Parameter an die Methode Open weitergegeben werden. Die meisten davon sind einfach zu begreifen.

Der Parameter Methode definiert die Abfrage-Methode. Hier gibt es die Auswahl zwischen „POST“, „GET“ und „HEAD“. Zunächst wird GET eingesetzt.

Url ist die URL-Zeile der Seite, die abgefragt werden soll. Es kann jedoch nicht einfach jede alte Seite aufgerufen werden, denn es gibt eine Sandbox, die verhindert, dass Seiten außerhalb der Domain, aus der die Abfrage stammt, aufgerufen werden.

Async macht Ajax erst möglich. Obwohl es sich der Programmierschnittstelle entsprechend um einen optionalen Parameter handelt, ist er in diesem Falle zwingend und muss auf True gesetzt werden – ist er auf False gesetzt, läuft das Script nicht weiter, bis eine Antwort eingeht. Die Voreinstellung für diesen Parameter ist True, man könnte ihn also einfach ungesetzt lassen. Im Interesse von Leserlichkeit und Wartungsfreundlichkeit empfiehlt es sich jedoch dringend, diesen Parameter zu setzen.

User und Password dienen der Authentifizierung, wenn man diese verwenden möchte.

Sobald Async auf True gesetzt ist muss eine Methode definiert werden, die aufgerufen wird, sobald sich der Abfragestatus ändert – dies geschieht, indem die Eigenschaft onreadystatechange des Objekts XMLHttpRequest gesetzt wird.

Nun muss die Abfrage nur noch abgeschickt werden; zunächst bleibt alles einfach und die Abfrage wird ohne zusätzliche Daten abgeschickt.

In einem einfachen Beispiel kombiniert, sieht alles zusammen so aus:

Es bedarf nur dreier Zeilen, um die Ajax-Welt zu betreten, komplizierte Konzepte oder eine verdrehte Logik sind nicht vonnöten.

Page: 1 2 3 4 5

ZDNet.de Redaktion

Recent Posts

SmokeBuster bekämpft SmokeLoader

Malware SmokeLoader wird weiterhin von Bedrohungsakteuren genutzt, um Payloads über neue C2-Infrastrukturen zu verbreiten.

4 Tagen ago

Taugen Kryptowährungen als Unterstützer der Energiewende?

Bankhaus Metzler und Telekom-Tochter MMS testen, inwieweit Bitcoin-Miner das deutsche Stromnetz stabilisieren könnten.

5 Tagen ago

Supercomputer-Ranking: El Capitan überholt Frontier und Aurora

Mit 1,7 Exaflops ist El Capitan nun der dritte Exascale-Supercomputer weltweit. Deutschland stellt erneut den…

5 Tagen ago

Ionos führt neue AMD-Prozessoren ein

Der deutsche Hyperscaler erweitert sein Server-Portfolio um vier Angebote mit den neuen AMD EPYC 4004…

5 Tagen ago

Lags beim Online-Gaming? DSL-Vergleich und andere Tipps schaffen Abhilfe

Beim Online-Gaming kommt es nicht nur auf das eigene Können an. Auch die technischen Voraussetzungen…

5 Tagen ago

GenKI-Fortbildung immer noch Mangelware

Fast jedes zweite Unternehmen bietet keinerlei Schulungen an. In den übrigen Betrieben profitieren oft nur…

5 Tagen ago