Uno sguardo ad AJAX

by Michele

Da qualche tempo gira per la rete un nuovo termine, l’ennesimo termine informatico. Sembra proprio che le persone non possano vivere senza etichettare qualsiasi cosa :-) .
Il nuovo termine è AJAX, l’acronimo per “Asynchronous JavaScript and XML”.

Scatola di AJAX

Non si tratta di una nuova tecnologia ma di un diverso approccio allo sviluppo di applicazioni web. Utilizzando insieme XHTML e CSS, XML e DOM, JavaScript e l’oggetto XMLHttpRequest si possono creare delle applicazioni web veramente potenti. Tutto nasce dall’esigenza di creare applicazioni più semplici da usare e con un livello di iterazione più vicino alle applicazioni desktop classiche. Questo nuovo approccio permette di dare vita ad applicazioni con maggiore usabilità e che riducono il traffico di rete verso i server che le ospitano.
Una delle prime aziende ad utilizzare questo nuovo approccio è stata Google, che lo ha subito inserito in alcune delle sue più famose applicazioni come Gmail e successivamente Google Maps.

Inoltre queste applicazioni offrono una riduzione del traffico di informazioni con il server, richiedono al server solo le risorse realmente necessarie senza ricaricare ogni volta l’intera pagina. Purtroppo c’è anche il lato negativo: la compatibilità con i browser web, perchè solo le più recenti versioni dei browser supportano le tecnologie necessarie. Uno dei punti fondamentali di questo approccio è l’oggetto XMLHttpRequest. Un vero e proprio client HTTP che permette di
richiedere qualsiasi risorsa sul web. Si può utilizzare per aggiornare al volo contenuti ad una pagina o per eseguire operazioni senza dover aspettare il ri-caricamento della pagina. Le possibilità sono praticamente infinite, tutte le applicazioni create finora potrebbero essere riviste in salsa AJAX con un drastico incremento della loro usabilità e delle prestazioni.

Ecco un esempio di utilizzo dell’oggetto XMLHttpRequest:

var request = new XMLHttpRequest();
request.open("GET", "data.html", true);
request.onreadystatechange = function(){
	if( request.readyState == 4 ) {
		if( request.status == 200 ) {
			alert(request.responseText);
		}else{
			alert("There was a problem:\n"+ request.statusText);
		}
	}
};
request.send(null);

Abbiamo detto che l’oggetto XMLHttpRequest permette di eseguire richieste HTTP, richieste del tutto personalizzabili. È quindi possibile collegarsi ad un WebService ed usufruire dei suoi servizi. Se il WebService è presente sulla stessa macchina di provenienza del codice JavaScript allora il gioco è fatto, se non lo è, entrano in funzione dei meccanismi di sicurezza e bisogna dare i giusti privilegi allo script. Questo da l’idea della potenza del nuovo approccio AJAX. Si possono finalmente creare form che interagiscono in tempo reale con il backend, aggiornando i dati mentre si modificano o validando ciò che si inserisce. Sono le cosiddette Rich Web Application, quelle che finora era possibile creare solamente con plug-in come Flash, Applet Java o ActiveX.