# JavaScript/Introduzione ad AJAX

JavaScript
Copertina Tutti i moduli · Sviluppo
* IntroduzioneJavaScript/Introduzione
* Il nostro primo programmaJavaScript/Il nostro primo programma
* Tipi di dati e variabiliJavaScript/Tipi di dati e variabili
* Operatori e castingJavaScript/Operatori e casting
* Le strutture di controllo
** SelezioneJavaScript/Selezione
** IterazioneJavaScript/Iterazione
* Funzioni definite dall'utenteJavaScript/Funzioni definite dall'utente
* Programmazione ad oggettiJavaScript/Oggetti
** Oggetto StringJavaScript/Oggetto String
** Oggetto MathJavaScript/Oggetto Math
** Oggetto DateJavaScript/Oggetto Date
** Oggetto ArrayJavaScript/Oggetto Array
* CookieJavaScript/Cookie
* TimerJavaScript/Timer
* L'oggetto windowJavaScript/BOM
** Gli eventi nel BOMJavaScript/Gli eventi nel BOM
** Oggetto documentJavaScript/Oggetto document
** Altri oggetti del BOMJavaScript/Altri oggetti del BOM
* Il Document Object ModelJavaScript/DOM
** Proprietà e metodiJavaScript/Proprietà e metodi del DOM
** Gli eventi nel DOMJavaScript/Gli eventi nel DOM
* Espressioni regolariJavaScript/Espressioni regolari
* AJAX
** Introduzione ad AJAXJavaScript/Introduzione ad AJAX
** Usare AJAXJavaScript/Usare AJAX
* Costruttori e prototipiJavaScript/Costruttori e prototipi
* AppendiceJavaScript/Appendice
* CreditiJavaScript/Crediti
Modifica il sommario
Con l'acronimo AJAX (Asynchronous JavaScript And XML) si identifica l'uso di un particolare oggetto JavaScript (l'oggetto XMLHttpRequest) che permette di effettuare le cosiddette richieste asincrone.

## Un altro tipo di dinamicità

Finora abbiamo visto come rendere dinamica una pagina nell'ambito dei file in cui viene inserito il file JavaScript. Usando l'oggetto XMLHttpRequest, invece, possiamo rendere dinamica la pagina nell'ambito delle richieste file-server tramite il protocollo HTTP.
In pratica, possiamo caricare, tramite JavaScript, pagine presenti sul nostro web server; questo permette quindi di poter eseguire una grande quantità di operazioni senza dover far caricare all'utente altre pagine.

## Un esempio

Supponiamo ad esempio di voler creare una tipica pagina "mostra suggerimenti": vogliamo che, ogni volta che l'utente clicca su un pulsante, venga caricato un nuovo suggerimento.
Per fare questo abbiamo implementato sul server una pagina scritta in un linguaggio lato server (come Java, PHP o ASP) che restituisca un suggerimento casuale tra un elenco di suggerimenti contenuti in un database. La pagina restituita dal nostro script lato server non deve contenere la struttura del documento HTML, ma solo il testo del suggerimento.
Con AJAX in questo modo potremmo fare sì che quando l'utente clicca sul pulsante "Mostra suggerimento" tramite l'oggetto XMLHttpRequest richiamiamo il testo restituito dal nostro script lato server (attenzione, non carichiamo il sorgente del PHP o ASP o quello che sia, ma il testo che restituiscono) e lo mostriamo all'interno di un apposito div.

## Creare l'oggetto XMLHttpRequest

Per istanziare un oggetto XMLHttpRequest usare la seguente sintassi:
Tutti i browser moderni supportano nativamente l'oggetto XMLHttpRequest. Tuttavia Internet Explorer lo supporta solamente dalla versione 7. Se si vuole garantire compatibilità anche con le versioni precedenti di IE, si può usare la funzione fornita di seguito (che restituisce un oggetto AJAX oppure avvisa l'utente che la funzionalità non è presente sul browser in uso):
Questa funzione che restituisce un nuovo oggetto XMLHttpRequest utilizza il costrutto try... catch; senza analizzarlo nei dettagli, questo costrutto permette di eseguire una porzione di codice (indicata nel blocco try) e, nel caso questa porzione generi un errore, eseguirne un altro (blocco catch). In questo modo se la prima riga xmlHttp=new XMLHttpRequest; non funziona viene richiamato il blocco successivo, che istanzia l'oggetto in modo corretto per le versioni di Internet Explorer precedenti alla 7.
Per creare un nuovo oggetto AJAX, quindi, basterà inserire nel nostro script la funzione sopra indicata e poi la riga:

## Altri progetti

Altri progetti
* Wikipedia
* Wikimedia Commons
* Wikipedia contiene una voce su AJAX
* Wikimedia Commons contiene immagini o altri file su AJAX

## Collegamenti esterni

* (IT) Iniziare AJAX | MDN
* (EN) Tutorial ad AJAX su w3schools