Tutti per uno… XMLHttpRequest per tutti!

Introduzione

Ho deciso di scrivere questo tutorial perché negli ultimi tempi ho trovato molta confusione nell’utilizzo di sigle e definizioni. Relative all’oggetto XMLHttpRequest o addirittura all’idea di cosa sia AJAX.

Durante la lettura di questo articolo potrebbe essere propedeutica la consultazione contestuale degli script allegati.

Ci sono persone che interpretano AJAX semplicisticamente come il rendere dinamico (pieni di effetti) un sito di base statico, altre persone invece attribuiscono il termine ajax indiscriminatamente per qualsiasi tipo di operazione client/server. In effetti credo che il nome più opportuno per richieste client/server basate su script è XMLHttpRequest. Esso poi viene utilizzato per adempiere alle mansioni previste dai vari acronimi.

Significato degli acronimi

Il primo acronimo che credo aver sentito è stato proprio AJAX (forse perché è quello che si è diffuso con maggior velocità rispetto agli altri. Questo acronimo sta per Asynchronous Javascript And Xml ovvero nato con lo scopo di trattare richieste tramite javascript da e verso un server con notazione XML in modalità asincrona . Per eseguire questa funzione bisogna avvalersi dell’oggetto XMLHttpRequest.

Il secondo acronimo di cui mi ricordo essermi imbattuto è stato AJAJ che sta per Asyncrhonous Javascript and JSON. Uhm… un altro acronimo è saltato fuori. Il metodo migliore per descriverlo è riferendosi alla fonte ufficiale: http://www.json.org. Questo sistema appunto prevede che non ci sia un XML come risposta server ma una struttura nella notazione JSON (JavaScript Object Notation). Anche in questo caso per funzionare c’è bisogno dell’oggetto XMLHttpRequest.

Altro Acronimo in cui mi sono imbattuto: AHAH. Inizialmente l’avevo considerato una battuta… ma documentandomi ho riscontrato che effettivamente è un acronimo e sta per: Asynchronous Html And Http. Anch’esso si basa sull’XMLHttpRequest. Per evitare di dire cose errate o parziali suggerisco di consultare la fonte originale AHAH, Asynchronous Html And Http.

Facendo una ricerca su internet ho notato che l’acronimo AJAS è stato utilizzato su un articolo di Steve Karam “Putting the Express Back Into Oracle Application Express with AJAX“.

Ammaliato da tutti questi acronimi, ho deciso di inventarne uno anche io: AJAT ho fatto una ricerca su internet e non sono riuscito ad attribuirne la paternità per cui me la auto-attribuisco ma se tale acronimo fosse già stati menzionato da altri sarò ben lieto di segnalare i loro nomi come ideatori del termine.

AJAT significa: Asyncronous Javascript And Text mentre AJAS significa: Asynchronous Javascript And javaScript. Il primo prevede che il risultato dell’elaborazione server sia un Testo semplice non formattato secondo i tags dell’XHTML, l’altro invece prevede che in outuput sia ritornato uno Script Javascript da eseguire. Entrambi comunque fanno uso dell’oggetto XMLHttpRequest.

Una sintesi chiarificatoria

Sintetizzando, i cinque acronimi precedentemente utilizzati fanno tutti uso di una stessa metodologia di approccio al problema: è richiesto l’utilizzo di un oggetto XMLHttpRequest e la necessità di essere delle richieste Asicrnone.

Ma perché vengono introdotte queste nuove metodologie? Non basta fare il refresh di una pagina? La risposta è “Ni” ovvero l’idea sarebbe quella di caricare solo parte di una pagina attualmente visualizzata, se il browser del client lo consente, in alternativa provvedere a fare il caricamento di tutta la pagina. Almeno la filosofia che ne ho tratto è quella appena indicata.

Contesti d’uso

Con i presupposti che ad ora abbiamo definito, ciascuna metodologia è adeguata per un determinato problema.

Se per ipotesi volessimo gestire quindi una risposta di tipo XML la metodologia utilizzata prenderebbe il nome di AJAX. In alternativa assumerebbe uno degli acronimi precedentemente specificati. AJAJ per risposte in JSON, AHAH rimando alla fonte originale, AJAS per ottenere script javascript, AJAT per trattare risposte di tipo testo non formattato.