Netsensei

Much Ado About Nothing

AJAX

Ik zag daarjuist bij 7 seconden de term AJAX opduiken. Dat is niet de eerste keer de laatste dagen dat ik die zag passeren. Het intrigeerde mij. Wie of wat is AJAX en wat doet het? Een speurtocht op Wikipedia leverde mij deze uitleg op. En een definitie:

Asynchronous JavaScript and XML, or Ajax, is a web development technique for creating interactive web applications using a combination of:

  • HTML (or XHTML) and CSS for presenting information
  • The Document Object Model manipulated through JavaScript to dynamically display and interact with the information presented
  • The XMLHttpRequest object to exchange data asynchronously with the web server. (XML is commonly used, although any format will work, including preformatted HTML, plain text, JSON and even EBML)

Like DHTML, LAMP, or SPA, Ajax is not a technology in itself, but a term that refers to the use of a group of technologies together. In fact, derivative/composite technologies based substantially upon Ajax, such as AFLAX are already appearing.

Fascinating! Het komt erop neer dat de client niet voor elke interactie terug moet naar de server. Zoals bijvoorbeeld bij PHP het geval is. Neen. De afhandeling van de input en output wordt deels afgehandeld door een zogenaamde AJAX engine en wanneer nodig stuurt die eventueel een HTTP request (onder de vorm van XML) naar de server. Door een deel van het werk clientside te laten afhandelen vermijd je een pak overhead. Daardoor wordt je applicatie een pak responsiever. Beschouw volgende schemaatjes. (overgenomen van J.J. Garret Ajax: A New Approach to Web Applications)

schema 1

schema 2

Toch zijn er ook een aantal (klassieke) nadelen aan AJAX verbonden:

  • Je moet je Javascript uitgebreid testen op crossbrowser-compatibility
  • Je kan niet meer betrouwen op de “back” button van je browser om naar de vorige staat te gaan. Browsers gaan er immers vanuit dat een pagina in zijn geheel wordt geladen en niet in stukjes zoals bij AJAX het geval is. Een oplossing bestaat momenteel uit kunst en vliegwerk met iFrames.
  • Hetzelfde geldt voor het bookmarken van pagina’s.
  • Aangezien HTTP verkeer binnen een AJAX framework asynchroon moet je als ontwikkelaar de latency tussen actie en http request goed in het oog houden. Of het resultaat is juist het omgekeerde van wat je voor ogen had: je interface reageert een pak trager op interactie.

Wie gebruikt er nu AJAX? Een aantal groten implementeren deze technologie reeds. Bijvoorbeeld Flickr en Google GMail of Google Maps. Het is allesinds een technologie om in het oog te houden. De voordelen zijn immers legio en de mogelijkheden onbeperkt.