In questa lezione, vediamo cosa è e come funziona Ajax, come utilizzarlo con jQuery, e come usare il metodo predefinito .load()
.
Normalmente, i dati di una pagina web possono cambiare soltanto dopo che l'utente ha aggiornato la pagina. Alcune tecnologie permettono, tramite JavaScript (e quindi anche jQuery), di ricevere dati e modificare una pagina web senza bisogno di aggiornare la pagina.
Ajax (Asynchronous JavaScript and XML) è una tecnologia che consente di effettuare richieste asincrone (cioè senza bloccare il caricamento della pagina) al server web evitando di ricaricare l'intera pagina. Questo processo permette di aggiornare dinamicamente il contenuto di una pagina web senza interrompere l'esperienza dell'utente. jQuery semplifica l'utilizzo di Ajax, rendendo più agevole la gestione delle richieste HTTP e delle risposte.
Quella che hai letto finora è una definizione più tecnica: in parole povere, Ajax permette di richiedere i dati ad una pagina esterna, riceverli ed usarli nel modo che preferiamo. Con Ajax, possiamo anche inviare dei parametri che il file può utilizzare.
È una tecnologia molto utilizzata sul web, e jQuery la semplifica notevolmente.
Il primo metodo Ajax di jQuery che vediamo è .load()
. Questo metodo permette di caricare i dati restituiti direttamente da un file HTML specificato.
La sintassi è: $(
selettore).load(
url,
dati,
funzione)
. Vediamo i parametri in dettaglio:
Vediamo un esempio:
<div id="contenuto"></div>
<script>
$("#contenuto").load("pagina.html");
</script>
In questo esempio, viene caricato il contenuto HTML della pagina pagina.html
all'interno del <div>
.
Vediamo un esempio utilizzando i parametri aggiuntivi:
<div id="nome"></div>
<script>
$("#nome").load("nomeUtente.html", {id:3}, function() {
alert("Il nome dell'utente con id=3 è stato caricato." );
});
</script>
Visto che recuperiamo una pagina HTML, possiamo selezionare soltanto gli elementi che ci interessano utilizzando i selettori degli elementi nella pagina recuperata. Vediamo un esempio.
La pagina HTML è la seguente:
<ul>
<li id="id1">Marco Rossi</li>
<li id="id2">Michele Tolomeo</li>
<li id="id3">Gianfranco Toleschi</li>
</ul>
Per recuperare soltanto "Gianfranco Toleschi", posso utilizzare il suo id:
<div id="nome"></div>
<script>
$("#nome").load("lista.html #id3");
</script>