Ajax, nuovo approccio alle Applicazioni Web

Abbiamo tradotto un’articolo seminale per quanto riguarda l’approccio Ajax, scritto da coloro che hanno ideato questo stesso acronimo per definire la tecnologia più rivoluzionaria degli ultimi anni.

Articolo originale del 18 Febbraio 2005, tradotto dietro concessione di Adaptive Path.


Se qualcosa nell’attuale design dell’interazione può essere definito “glamour”, è creare Applicazioni Web. Dopo tutto, quando è stata l’ultima volta che avete sentito qualcuno parlare del design dell’interazione di un prodotto che non era sul Web? (Okay, oltre all’iPod.) Tutti i nuovi progetti più interessanti e innovativi sono online.

Nonostante questo, i designers dell’interazione Web non possono ma provano una piccola invidia per i colleghi che creano programmi desktop. Le applicazioni desktop hanno una ricchezza e una responsività che sembrava impossibile da raggiungere sul Web. La stessa semplicità che ha permesso la rapida proliferazione del Web crea anche un distacco tra l’esperienza che possiamo offrire e le esperienze che gli utenti possono ricevere da una applicazione desktop.

Questo distacco si sta riducendo. Guardate Google Suggest. Osservate il modo in cui i termini suggeriti si aggiornano mentre scrivete, pressochè in modo istantaneo. Ora osservate Google Maps. Zoomate. Usate il vostro cursore per afferrare la mappa e muoverla. Di nuovo, tutto accade in modo pressochè istantaneo, con nessuna attesa per l’aggiornamento dell’intera pagina.

Google Suggest e Google Maps sono due esempi di un nuovo approccio alle applicazioni web, che ad Adaptive Path abbiamo chiamato Ajax. Il nome è una abbreviazione di Asynchronous JavaScript + XML, e rappresenta un elemento cambiamento fondamentale in cosa è possibile sul Web.

Definire Ajax

Ajax non è una tecnologia. E’ invece differenti tecnologie, ognuna di efficace nel proprio settore, usate insieme in nuove e potenti combinazioni. Ajax incorpora:

Il classico modello di applicazione web funziona in questo modo: La maggior parte delle azioni utente attivano una richiesta HTTP presso il web server. Il server compie alcune operazioni - recuperare dati, macinare numeri, dialogare con differenti sistemi - e successivamente ritorna una pagina HTML al client. E’ un modello adattato sull’uso originale del Web come media ipertestuale, ma come i fans degli Elementi dell’Esperienza Utente sanno, quello che rende il Web adatto per gli ipertesti non lo rende necessariamente buono per le applicazioni software.

ajax 01

Questo approccio ha un grande significato tecnico, ma non rende molto dal punto di vista di una grande esperienza utente. Mentre il server sta compiendo le sue operazioni, cosa starà facendo l’utente? Giusto, aspetta. E per ogni elemento di un compito, l’utente dovrà aspettare più tempo.

Ovviamente, se potessimo disegnare il Web da zero per le applicazioni, non vorremmo far aspettare gli utenti. Una volta che l’interfaccia è caricata, perchè l’interazione con l’utente dovrebbe interrompersi ogni volta che l’applicazione ha bisogno di qualcosa dal server? Infatti, perchè gli utenti devono vedere l’applicazione comunicare col server?

Come Ajax è Differente

Una applicazione Ajax elimina la natura start-stop-start-stop dell’interazione con il Web introducendo un intermediario - un motore Ajax - tra l’utente e il server. Può sembrare che aggiungendo un layer a una applicazione questo la renda meno agevole, ma è vero il contrario.

Invece che caricare una pagina web, all’inizio della sessione, il browser carica un motore Ajax - scritto in javascript e spesso nascosto in un frame non visibile. Questo motore è responsabile sia del rendering dell’interfaccia che l’utente vedrà, sia della comunicazione con il server al posto dell’utente. Il motore Ajax permette all’interazione tra utente e applicazione di avvenire in modo asincrono - indipendente dalla comunicazione con il server. In questo modo l’utente non assisterà mai a una finestra bianca con un icona ad orologio, aspettando che il server comunichi qualcosa.

ajax 01

Ogni azione che normalmente avrebbe generato una richiesta HTTP prende invece la forma di una richiesta JavaScript al motore Ajax. Ogni reazione a un’azione utente che non richiede una comunicazione col server - come una semplice validazione dei dati, la modifica di dati in memoria, e persino alcune parti di navigazione - viene gestita in modo autonomo dal motore. Se il motore ha bisogno di qualcosa dal server per poter rispondere - come inviare dati per il loro processamento, caricare codice aggiuntivo per l’interfaccia, o richiedere nuovi dati - il motore effettuerà questa richiesta in modo asincrono, di solito usando XML, senza interrompere l’interazione di un utente con l’applicazione.

Chi usa Ajax?

Google sta facendo un grosso investimento nello sviluppo dell’approccio Ajax. Tutti i maggiori prodotti che Google ha introdotto nello scorso anno - Orkut, Gmail, l’ultima versione beta dei Google Groups, Google Suggest, e Google Maps - sono applicazioni Ajax. (Per maggiori informazioni sulle questioni tecniche legate a queste implementazioni Ajax, leggete queste eccelenti analisi di Gmail, Google Suggest, e Google Maps.) Altri stanno seguendo a ruota: molte delle caratteristiche che la gente ama in Flickr si affidano ad Ajax, e il motore di ricerca di Amazon A9.com applica tecniche simili.

Questi progetti dimostrano che Ajax non è solo un concetto tecnico, ma è un concetto pratico per applicazioni reali. Non è un’altra tecnologia che funziona solo in un laboratorio. E le applicazioni Ajax possono essere di ogni dimensione, dal semplice e monofunzione Google Suggest al complesso e sofisticato Google Maps.

Ad Adaptive Path, abbiamo fatto il nostro lavoro nei mesi passati, e abbiamo realizzato di aver appena scalfito la superfice della ricca ed efficace interazione che le applicazioni Ajax possono offrire. Ajax è uno sviluppo importante per le Applicazioni Web, e la sua importanza può solo aumentare. E dal momento che ci sono molti sviluppatori che già sanno come usare queste tecnologie, ci aspettiamo di vedere molte più organizzazioni seguire l’esempio di Google nel raccogliere il vantaggio competitivo che Ajax può offrire.

Andando oltre

Le prove maggiori nella creazione di una applicazione Ajax non sono tecniche. Le tecnologie alla base di Ajax sono mature, stabili, e ben conosciute. Invece, le prove da affrontare sono per i designers di queste applicazioni: dimenticare ciò che pensiamo di conoscere rispetto alle limitazioni del Web, e cominciare a immaginare un più ampio e ricco range di possibilità.

Sarà divertente.

Jesse James Garrett is the Director of User Experience Strategy and a founder of Adaptive Path. In 2005, he’ll be bringing his full-day seminar The Elements of User Experience to Boulder, Sydney, Seattle and other cities around the globe.
Other essays by Jesse James Garrett include The Nine Pillars of Successful Web Teams and Six Design Lessons From the Apple Store.

web counter