HTML and CSS Reference
In-Depth Information
ror
,
onload
,
ontimeout
e
onloadend
. Utilizzando opportunamente questi eventi,
possiamo adattare l'interfaccia grafica della nostra applicazione per mostrare in tempo
reale all'utente lo stato di avanzamento della richiesta al server: che percentuale è stata
completata, quanto tempo stimiamo manchi al completamento dell'operazione e così via.
L'esempio più tipico di questo tipo di utilizzo è la trasmissione o la ricezione di un file.
Utilizzando le File API, l'applicazione può accedere al contenuto di un file locale selezio-
nato da un utente attraverso un controllo di tipo
<input type=
"
file
"
/>
. In più, uti-
lizzando le API per il supporto al Drag&Drop e l'oggetto Data Transfer, abbiamo anche la
possibilità di leggere un file trascinato direttamente dal desktop in un'area specifica della
pagina.
Il metodo
send
di
XMLHttpRequest
può ricevere come parametro un oggetto di ti-
po
Blob
,
FormData
(coppie di tipo chiave/valore) o file e inviarne il contenuto in modo
progressivo.
L'esempio 8.12
mostra come inviare un file e altre informazioni al server.
Esempio 8.12
var formData = new FormData();
formData.append("Id", 1);
formData.append("userfile", fileInput.files[0]);
var request = new XMLHttpRequest();
request.open("POST", "fileupload.handler");
request.send(formData);
con una lista di coppie chiave valore, dove la prima coppia contiene un numero mentre la
seconda contiene un file selezionato dall'utente. Successivamente invochiamo il metodo
send
, passando in input l'oggetto
FormData
creato.
Usando le impostazioni predefinite
XMLHttpRequest
può inviare e ricevere dati esclu-
sivamente da URL nello stesso dominio della pagina che ha istanziato l'oggetto. Questa re-