Ajax
Computer, draw a robot!
Ajax è una tecnologia che serve a migliorare la user experience di una applicazione web.
La vera ragione perché una tecnlogia esiste è quella di mettersi al servizio
delle persone
Deve servire allo sviluppo di un software usabile ed allo stesso tempo non deve essere usato impropriamente nei confronti di ciò che riguarda l'accessibilità o la search engine optimization
Prima di cominciare
TITOLI UTILI
- Don't Make Me Think: A Common Sense Approach to Web Usability,
second edition, by Steve Krug (New Riders Press, 2005)
- Prioritizing Web Usability, by Jakob Nielsen and Hoa Loranger
(New Riders Press, 2006)
- Designing Interfaces: Patterns for Effective Interaction Design, by Jenifer Tidwell (O'Reilly, 2005)
- Ambient Findability, by Peter Morville (O'Reilly, 2005) Bulletproof Web Design, second edition, by Dan Cederholm (New Riders Press, 2007)
- Professional Search Engine Optimization with PHP: A Developer's Guide to SEO, by Cristian Darie and Jaimie Sirovich (Wrox Press, 2007)
una breve storia
Non esisterebbe Ajax senza questi due concetti
- Il web 2.0
- Il web semantico
Altre tecnologie client side
Sul vostro computer potete usare anche
- Java applets - gira all'interno del browser attraverso la Java virtual machine
- Macromedia Flash - gira all'interno del browser attraverso il flash player plugin
- Microsoft Silverlight - gira all'interno del browser attraverso una versione light del .NET Framework
Sono tecnologie piuttosto pesanti per dei task semplici, come per esempio la validazione di una form.
Perche' Ajax
- Elimina il page reload - consente di effettuare chiamate asincrone ad un server
Ajax sta per asynchronous javascript and XML
Se volessimo implementare un sistema di validazione di una form avremmo 3 scenari possibili:
- L'utente riempie ed invia la form (html) al server (php per es.) che controlla i dati immessi e restituisce la pagina. In questo caso fra richiesta e risposta esiste un delay temporale.
- La validazione viene effettuata attraverso javascript mentre l'utente digita. In questo caso non c'è delay ma abbiamo solo un subset di funzionalità consentite da un linguaggio client side.
- Attraverso Ajax, beneficiando quindi delle possibilità di javascript ma potendo anche comunicare con un linguaggio server side mentre l'utente digita nei campi della form (pensiamo a una combo popolata a seconda dei caratteri immessi dall'utente)
Best of Ajax
Esistono tantissime applicazioni Ajax e le usiamo tutti i giorni!
Cos'e' Ajax
Come abbiamo detto l'acronimo sta per Asynchronous javascript and xml.
Ajax non rappresenta dunque una nuova tecnologia. E' un insieme di tecnologie.
- Javascript - serve a creare le funzionalità client side, a manipolare quindi gli oggetti del DOM (document object model)
- XMLHttpRequest - è l'oggetto che consente la comunicazione asincrona con il server permettendo di inviare dei parametri (coppie nome valore) ad un server in GET o POST
- Un linguaggio server side. Nel nostro caso PHP, che risponderò non più una pagina HTML ma in un formato di interscambio dati: XML o JSON (Javascript Object Notation)
Benefici
- Si possono creare applicazioni responsive e intuitive
- Usa tecnlogie già esistenti quindi non c'è niente da installare
Svantaggi
- Spesso si dimentica che non tutti i browser supportano javascript o che può essere disabilitato lato client. Le funzionalità base devono esistere comunque. Ajax è un di più.
- I motori di ricerca non hanno la capacità di eseguire javascript. Dunque i contenuti caricati con Ajax non vengono indicizzati.
- Il bookmark di una pagina Ajax è problematico poichè l'indirizzo sulla barra del browser non cambia mentre si caricano contenuti. E' necssario salvare gli stati dell'applicazione, per esempio attraverso ancore. www.my-example.com/my-Ajax-app/#state1
- Stessa problema del punto precedente si ha con i bottoni back e forward (http://code.google.com/p/reallysimplehistory/)