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”.

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.
Commenti
tre precisazioni pignole: GMail è stato uno dei primi servizi a rendere “famosa” questa tecnologia, ma questa era in uso già da qualche tempo. Inoltre c’è da dire che
XMLin realtà non c’entra necessariamente, XmlHttpRequest permette di passare qualsiasi cosa, ed in particolare la cos più sensata secondo me è fargli manipolare codice *json*.Da notare anche che l’uso di XmlHttpRequest impedisce il funzionamento del tasto “indietro”, e quindi non è sempre preferibile (google per esempio usa degli iframe per google map proprio per far funzionare il tasto indietro pur dando un effetto dinamico e senza ricaricare pagine per nulla)
Tu parli di tecnologia ma io ho precisato che non si tratta di una vera e propria tecnologia ma di un nuovo “approccio”. Solo adesso si può utilizzare in massa, per il semplice fatto che quasi tutti i maggiori browser lo supportano le tecnologie necessarie.
XMLnon c’entra necessariamente ma è attualmente il modo più elegante per trasferire dati sulla rete.Quello del tasto indietro è un vero e proprio problema, ma non è detto che bisogna usare questo nuovo approccio per fare tutto! Credo che si possano sostituire parecchie funzionalità delle applicazioni esistenti dove non sarà richiesto necessariamente che il tasto indietro debba funzionare. In sostanza queste tecnologie danno la possibilità di creare applicazioni più usabili, dopo sta a chi sviluppa non abusarne