JETZT NEU! News, Artikel, Infos und mehr auf jaxenter.de!
18.09.2006
Totally AJAX: XMLHttpRequest versus iFrame

Florian Müller
Cambridge Technology Partners

Es gibt viele Möglichkeiten und Technologien, eine AJAX-Applikation zu entwickeln. Bevor man aber ins Detail geht und sich Gedanken darüber macht, welches Framework man einsetzt oder ob die Applikation doch lieber "von Hand" programmiert werden sollte, steht jeder Entwickler (bewusst oder unbewusst!) vor der Entscheidung: "Programmiere ich basierend auf dem XMLHttpRequest oder setzte ich das so genannte Remote Scripting ein?"

Remote Scripting
Der eine oder andere wird sich jetzt vielleicht wundern, was denn unter Remote Scripting zu verstehen ist, deswegen hier eine kurze Erläuterung: Remote Scripting existiert schon lange Zeit und wurde durch die Einführung des Document Object Model (DOM) möglich. Unter Verwendung eines iFrame kann mittels DOM eine "unsichtbare Seite" angesprochen werden, wobei die unsichtbare Seite für die Kommunikation mit dem Server basierend auf HttpRequests und Responses eingesetzt wird. Das Ergebnis ist eine Webseite, die dem Benutzer in "AJAX-Manier" stabil im Browser angezeigt wird! Zusätzlich gibt es noch einen Perfomance-Schub für die Webapplikation, da keine Layout-Informationen zwischen Client und Server ausgetauscht werden, sondern lediglich "reine Daten"transferiert werden. Eine sehr gute Anleitung für die Verwendung von Remote Scripting gibt es bei der Apple Developer Connection.

XMLHttpRequest
Die zweite Möglichkeit für die Implementierung einer AJAX-Applikation ist der XMLHttpRequest, der in der Regel eher mit AJAX assoziiert wird als das oben beschriebene Verfahren. Nun drängt sich förmlich die Frage auf, warum man denn überhaupt noch Remote Scripting verwenden sollte, da doch jetzt alles mit dem XMLHttpRequest viel einfacher gelöst werden kann. Die Antwort auf diese Frage wird im "AJAX-Rausch" gern übersehen, kann allerdings am Ende eines Projektes für böse Überraschungen sorgen: Der XMLHttpRequest ist für die Internet-Explorer-Umgebung eine ActiveX-Implementierung! Das heißt für alle IE-User im Klartext, dass ActiveX aktiviert sein muss, sonst bleibt die Seite zwar stabil im Browser, dies liegt dann allerdings eher daran, dass Client und Server gar nicht miteinander kommunizieren.

Remote Scripting vs. XMLHttpRequest
Dennoch sollte der XMLHttpRequest nicht pauschal mit dem Statetment "braucht ActiveX" erschlagen werden, denn die Verwendung des XMLHttpRequest erleichtert die Entwicklung von AJAX-Applikationen an vielen Stellen: So bietet der XMLHttpRequest beispielsweise die Möglichkeit XML-Daten mittels JavaScript direkt aus dem Request zu extrahieren. Beim Remote Scripting muss der Entwickler das XML selbstständig auf den HttpRequest "legen", und auch das Extrahieren des XML aus der Response erfordert einige "String-Akrobatik". In puncto Performance liegen beide Ansätze in etwa gleichauf, für kleine Datenmengen hat der XMLHttpRequest die Nase vorne. Und was den Programmieraufwand angeht macht ebenfalls der XMLHttpRequest das Rennen, denn mit knapp fünf Zeilen Code für das Absenden und Empfangen der Daten kann der Remote-Scripting-Ansatz definitiv nicht mithalten.

Was ist also die Quintessenz dieses Beitrages? Ganz einfach, machen Sie sich rechtzeitig Gedanken über Ihre Zielplattform: In Unternehmen mit strengen Security-Auflagen (z.B. Banking-Umfeld) ist es manchmal schon schwer, den Kunden zur Aktivierung von JavaScript zu bewegen – versuchen Sie da mal mit der Aktivierung von ActiveX noch eins drauf zu setzen! Überhaupt sollten Sie sich stets ins Bewusstsein rufen, dass "AJAX nicht gleich AJAX" ist und AJAX-Frameworks auch nur mit Wasser kochen: Entsprechend basieren viele Frameworks auf dem XMLHttpRequest und die oben beschriebene ActiveX-Problematik wird gar nicht erwähnt - die Entdeckung bleibt dem Entwickler überlassen. Hauptsache ist jedoch: Sie wissen jetzt Bescheid und können zukünftig auf solche Dinge achten!

Florian Müller arbeitet als Consultant für die Firma Cambridge Technology Partners, Schweiz. Sowohl beruflich als auch privat gilt sein Hauptinteresse der Entwicklung von Webapplikationen basierend auf dem AJAX-Ansatz.









JETZT NEU! News, Artikel, Infos und mehr auf jaxenter.de!
Copyright © 2012 Software & Support Media GmbH                              Impressum |  Datenschutz