Mai fidarsi di un computer che non è possibile gettare dalla finestra.

— Steve Wozniak

AJAX: Asynchronous JavaScript Technology and XML

http://www.stenoweb.it/files/blog/ajax.jpeg Quasi tutti gli utenti hanno usato almeno una volta uno dei ben noti servizi messi a disposizione da Google (GMail, Google Maps, Google Support, etc). Solo i più attenti, però, avranno notato lo “strano comportamento” di queste pagine web che, nel loro funzionamento, sono molto simili alle applicazioni desktop classiche. Questo perché, per modificare anche solo una piccola porzione della pagina, non richiedono il reload dell’intera pagina del browser. Tali applicazioni sono definite “Web 2.0 application”.

Ma facciamo un piccolo passo indietro e vediamo come funzionano le “classiche” applicazioni web (Web 1.0). Le applicazioni Web 1.0 sono tradizionalmente costituite da un insieme di pagine HTML che devono essere interamente ricaricate dal browser per cambiare anche una piccola porzione dei contenuti che esse mostrano. Ciò comporta notevoli svantaggi in quanto il refresh dell’intera pagina si traduce in una moltitudine di richieste da parte del browser al Web Server che ospita la pagina, quindi nell’invio di tutte le risposte al browser richiedente.

Il tutto magari solo per aggiornare il valore di un contatore a seguito di un click dell’utente. Nasce, perciò, la necessità di avere un meccanismo che permetta l’aggiornamento e la modifica di piccole porzioni di una pagina senza l’invio di una richiesta di aggiornamento per porzioni della stessa che non sono di interesse.

Fortunatamente, l’evolversi e la maturazione di tecnologie quali JavaScript e CSS hanno reso possibile la nascita di una nuova tecnologia, denominata AJAX (Asynchronous JavaScript Technology and XML), capace di permettere la creazione di applicazioni web dinamiche denominate “Web 2.0 application”.

Il principio che sta alla base di tutta la tecnologia AJAX è molto semplice ed è quello di utilizzare la tecnologia JavaScript in pagine HTML per effettuare chiamate asincrone al server e prelevare, in questo modo, informazioni strutturate in documenti XML. Questi documenti, sono poi utilizzati dalla tecnologia Javascript per aggiornare o modificare la struttura della pagina HTML (DOM – Document Object Model).

Sebbene questa visione delle cose possa sembrare a molti una vera e propria innovazione, la filosofia AJAX non è nuova. L’idea di aggiornare solo alcuni contenuti di una pagina HTML è piuttosto datata e, in passato, è stata emulata utilizzando una combinazione di plug-in, applet Java e frame nascosti. La vera innovazione introdotta da AJAX è l’introduzione dell’oggetto JavaScript XMLHTTPRequest.

Inizieremo a studiare meglio il comportamento e le funzionalità di questa interessante tecnologia.