Questo articolo parla dei principi di ottimizzazione generali mediante AJAX, senza riferimento ad una tecnologia in particolare: mi sembra interessante parlarne, infatti, soprattutto perchè il più delle volte si da' per scontata questa tecnologia, quando invece è molto utile capire bene il contesto, e le possibili applicazioni.
Storicamente AJAX non si riferisce nè ad una squadra di calcio nè ad un noto prodotto commerciale, bensà¬ ad un modo di pensare il web molto diffuso negli ultimi anni: sta infatti perÂ Asynchronous JavaScript and XML, ed è un "contenitore" generico per tecnologie spesso molto differenti tra loro. Deve far pensare non ad una libreria specifica, bensà¬ ad un approccio progettuale specifico alle pagine web, il quale permette di crearne, aggiornarne e modificarne nel tempo in modalità  cosiddetta asincrona.
Usando AJAX su una pagina web non è necessario ricaricare l'intera pagina ad ogni action o update, bensà¬ anche soltanto una parte di essa (per esempio in un adibito a contenere dei risultati), con ovvi vantaggi (in media) in termini di velocità  di aggiornamento dei contenuti. AJAX più precisamente fa riferimento ad un insieme di tecniche e tecnologie (sulla falsariga di quanto suggerito argutamente da Chris Shifflet) che permettono una comunicazione a due vie tra client e server.
Il concetto, in effetti, non dovrebbe essere nuovo per chiunque lavori sul web come sviluppatore almeno da qualche anno, vista la crescente attenzione al tema da parte delle aziende del settore; in modo piuttosto embrionale potremmo pensare che AJAX racchiuda i primi semi di ciò che, molti anni dopo, sarebbe diventato l'approccio usato da software alla Node.js, il quale non solo rende Javascript un linguaggio lato server, ma finisce per rendere irrilevante (se non da un punto di vista prettamente storico) la differenza tra client e server.
Le pagine web in AJAX sono più snelle ed user-friendly - L'approccio AJAX alla progettazione dei siti permette, di fatto, ed il più delle volte senza che il webmaster tocchi effettivamente con mano la cosa, di velocizzare il caricamento delle pagine: questo soprattutto cercando di mostrare il più possibile da una singola pagina aggirando i meccanismi bloccanti tipici dei linguaggi server side alla PHP. Per intenderci, con AJAX posso implementare il caricamento dei dati da una fonte esterna mostrando una finestrella di caricamento ed il resto del theme della pagina, mentre usando PHP puro sarei stato costretto a far aspettare l'utente la conclusione delle elaborazioni prima di vedere qualcosa.
Esempi di librerie AJAX usate ed abusate dai siti e dai servizi web in generale sono l'immancabile jQuery (che snellisce e potenzia la sintassi di Javascript permettendo, nel contempo, di modificare come vogliamo qualsiasi elemento del DOM, cioè della gerarchia HTML, della pagina in questione), i meno diffusi Mootools e Prototype, Dojo ed AngularJS. Non sono rari neanche i casi in cui librerie AJAX siano progettate per un linguaggio server side specifico (PHP ad esempio) operando direttamente su delle XMLHttpRequest.
In termini ancora più pratici, le librerie AJAX possono essere incluse sia ricopiando i file all'interno dei nostri progetti web che, come molto spesso si fa, sfruttando delle hosted library (in pratica delle CDN, Content Delivery Network) come quella di Google. Quale delle due scelte (localizzare i file o importarli dall'esterno) dipende molto dal contesto: a volte importare dall'esterno questi file "pesa" molto sul numero di chiamate HTTP e finisce per rallentare, invece che velocizzarne, il caricamento. Motivo per cui si ricorre a meccanismi di caching o, ancora più semplicemente, si tende ad accorpare e comprimere tali inclusioni in modo che siano caricate in memoria più velocemente possibile. Il modo migliore per velocizzare il proprio sito cambia molto a seconda dello scenario considerato, e non esiste purtroppo una regola semplice nè universale per tarare queste prestazioni.
AJAX certamente non è l'unico modo possibile per migliorare l'efficenza di una pagina web, e anzi per certi versi potrebbe essere surclassato da un approccio più completo: per certi versi, infatti, una politica di ottimizzazione basata solo su AJAX rischia di essere miope o limitativa, per cui sarà  bene comprendere perfettamente su che server stiamo lavorando e poi regolarci di conseguenza, caso per caso.
Photo by jopemoro