Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial
  • Lezione 2 di 24
  • livello principiante
Indice lezioni

Descrizione tecnica e teorica

Richieste asincrone con l'oggetto XMLHttpRequest e tempi di risposta
Richieste asincrone con l'oggetto XMLHttpRequest e tempi di risposta
Link copiato negli appunti

Se parliamo di AJAX, oggi, parliamo di un oggetto specifico: XMLHttpRequest. A seconda del browser usato prende nomi differenti o viene richiamato in maniera differente.

Nel caso di Internet Explorer, ad esempio, questo oggetto è restituito da un ActiveXObject mentre nei browsers alternativi più diffusi (Mozilla, Safari, FireFox, Netscape, Opera ed altri) XMLHttpRequest è supportato nativamente, cosa che dovrebbe accadere anche per IE dalla versione 7.

Questo oggetto permette di effettuare la richiesta di una risorsa (con HTTP) ad un server web in modo indipendente dal browser. Nella richiesta è possibile inviare informazioni, ove opportuno, sotto forma di variabili di tipo GET o di tipo POST in maniera simile all'invio dati di un form.

La richiesta è asincrona, il che significa che non bisogna necessariamente attendere che sia stata ultimata per effettuare altre operazioni, stravolgendo sotto diversi punti di vista il flusso dati tipico di una pagina web.

Generalmente infatti il flusso è racchiuso in due passaggi alla volta, richiesta dell'utente (link, form o refresh) e risposta da parte del server per poi passare, eventualmente, alla nuova richiesta da parte dell' utente.

Figura 1. Rappresentazione di una richiesta ad un server con latenza e risposta
rappresentazione di una richiesta ad un server con latenza e risposta

Il terzo ed inevitabile incomodo di questo ciclo è l'attesa che trascorre tra una richiesta dell' utente e la risposta del server. Con l'aggiunta di AJAX si perde questa linearità e mentre l'utente è all'interno della stessa pagina le richieste sul server possono essere numerose e completamente indipendenti.

Nulla infatti vieta, teoricamente, di effettuare decine di richieste simultanee al server per operazioni differenti con o senza controllo da parte del navigatore.

Figura 2. Rappresentazione di una richiesta ad un server con latenza e risposta
rappresentazione di una richiesta ad un server con latenza e risposta

Ciò che resta del vecchio flusso, il tempo di attesa, passa spesso in secondo piano ed in molti tipi di interazione è praticamente impercettibile. Ma attenzione poichè questo tempo è anche uno dei maggiori problemi dell'utilizzo di AJAX, sia per gli sviluppatori sia per i navigatori.

I primi potrebbero trovarsi in difficoltà qualora l'operazione asincrona dovesse attendere assolutamente una risposta al fine di completare una serie di operazioni più o meno sensibili mentre i secondi potrebbero non avere idea di cosa stia accadendo alla pagina chiudendola ignari di aver richiesto un'informazione.

A completare questa breve introduzione tecnica e teorica è il tipo di risposta che l'oggetto si aspetta dopo una chiamata che non deve essere necessariamente di tipo XML o letta come tale ma che può essere semplicemente testuale, in contro tendenza con l'acronimo stesso ma non per questo inusuale.

Ti consigliamo anche