Al giorno d'oggi, poter contare su tecniche come AJAX permette di realizzare interazioni con l'utente paragonabili a quelle di un software desktop per reattività e tempi di caricamento. Tuttavia la possibilità di caricare informazioni in modo asincrono si scontra spesso con le differenti implementazioni dei browser e i differenti tipi di dati caricati (XML, JSON, HTML).
Tutte le moderne librerie JavaScript hanno risposto a questo problema con delle implementazioni cross-browser capaci di gestire in modo semplice tutti i vari aspetti di AJAX.
jQuery implementa AJAX attraverso una serie di metodi statici dell'oggetto $. Nonché con una serie di metodi per gestire eventi AJAX sugli elementi della collezione.
Per comprendere il modo in cui jQuery gestisce AJAX bisogna introdurre gli eventi AJAX. Questi sono una serie di eventi che si susseguono prima, durante e dopo una richiesta AJAX e che vengono suddivisi in due categorie:
$..bind().Riporto di seguito la lista degli eventi AJAX gestiti da jQuery nell'ordine in cui avvengono durante una chiamata (tra parentesi il tipo di evento):
ajaxStart (globale): quando la chiamata viene inizializzatabeforeSend (locale) e ajaxSend (globale) : prima di inviare la chiamatasuccess (locale) e ajaxSuccess (globale): quando una chiamata ha successoerror (locale) e ajaxError (globale): quando avviene un errorecomplete (locale) e ajaxComplete (globale): quando la chiamata si conclude indipendentemente da erroriajaxStop (globale): quando non ci sono più chiamate da effettuareQuesta lista di eventi ci servirà per capire quali funzioni associare alle chiamate AJAX per personalizzare il modo in cui viene contattato il server e come manipolare i dati restituiti.
Inoltre, come detto in precedenza, gli eventi globali vengono lanciati su tutti gli elementi del DOM e per questo possono essere impostati attraverso il metodo .bind() o con specifiche scorciatoie:
$("#stato").bind("ajaxComplete",function () {
//codice da eseguire
});
$("#stato").ajaxComplete(function () {
//codice da eseguire
});
Poiché gli eventi globali risalgono il DOM a partire dall'elemento direttamente coinvolto nella richiesta, possono risultare utili per lanciare una funzione generica per ogni chiamata Ajax, come un avviso stile "messaggio di caricamento". Basta applicare la funzione all'elemento document:
$(document)
.ajaxStart(
function () {
$("#messaggio").text("caricamento...");
}
)
.ajaxStop(
function () {
$("#messaggio").text("");
}
);
PhantomJS, headless browser per test con JavascriptIl tool ideale per realizzare, da terminale, operazioni in remoto su... |
Creare e leggere QR Code in JavaScriptApplicazioni 'QR Code enabled' per il Web e per il mobile,... |
Jquery UI Map: web-mapping con Google Maps e jQueryUn plugin di jQuery UI per intefacciare applicaizoni Web/mobile con... |
Scrollorama e Scrolldeck, slideshow d'effetto con jQueryPlugin jQuery per ottenere Slideshow con diversi effetti di scrolling |
jCanvas, un primo semplice graficoAlla scoperta della libreria jCanvas, per semplificare il disegno e... |
Guida Node.jsIl framework che permette di per usare V8, l'interprete JavaScript... |
Canvas, guida ai frameworkCanvas, tra gli elementi di HTML5 è forse quello di maggior impatto.... |
Guida Javascript: tecniche avanzateUna guida dal taglio pratico per approfondire la programmazione a... |
Ogni martedì, direttamente nella tua e-mail: guide, articoli, script, novità e approfondimenti tecnici su JavaScript.
Iscriviti alla newsletter
|
|
Corso Webmaster base18 Giugno 2012 a Milano |
|
|
Corso Google AdWords Base25 Giugno 2012 a Milano |
|
|
Corso JQuery e Ajax per Webmaster03 Luglio 2012 a Milano |
|
|
Corso Google AdWords Base05 Giugno 2012 a Roma |
|
|
Corso Webmaster base11 Giugno 2012 a Roma |