XMLHttpRequest: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
SassoBot (discussione | contributi)
m Bot: Aggiungo: tk:XMLHttpRequest
Xqbot (discussione | contributi)
m Bot: Modifico: pl:XMLHttpRequest; modifiche estetiche
Riga 5:
Oltre a XML, XMLHTTP può essere usato per prendere dati in altri formati, come [[JSON]] o anche testo semplice.
 
XMLHttpRequest è un elemento fondamentale della tecnica di sviluppo web conosciuta con l'acronimo Ajax, ed è utilizzato in molti siti web per implementare applicazioni fruibili via browser dinamiche ed interattive. Una delle prime applicazioni ad utilizzare questo componente è stato il servizio di webmail di [[Google]] Gmail, a cui sono seguiti Google Suggest, Meebo, Virtual Earth di MSN e MapQuest.
 
== Metodi ==
{| class="wikitable" width="90%"
! Metodo
Riga 21:
| Restituisce il valore dell'header HTTP specificato
|-
| nowrap valign="top" | <tt>open( metodo, URL )</tt><br /><tt>open( metodo, URL, async )</tt><br /><tt>open( metodo, URL, async, userName )</tt><br /><tt>open( metodo, URL, async, userName, password )</tt>
|Specifica il metodo, l'URL, and altri parametri opzionali per la richiesta.
 
Riga 28:
Il parametro URL può essere sia relativo che assoluto.
 
Il parametro "async" specifica se la richiesta deve essere gestita in modo asincrono oppure no &ndash; "true" significa che lo script può proseguire l'elaborazione senza aspettare la risposta dopo il metodo send(), mentre "false" significa che lo script è costretto ad aspettare una risposta dal server prima di continuare.
|-
| <tt>send( content )</tt>
Riga 37:
|}
 
== Attributi ==
{| class="wikitable" width="90%"
! Attributo
Riga 62:
|}
 
== Storia ==
L'oggetto venne originariamente inventato da [[Microsoft]], usato da [[Internet Explorer]] 5.0 come oggetto [[ActiveX]], accessibile via JavaScript, VBScript, o qualsiasi altro linguaggio supportato dal browser. Gli sviluppatori di Mozilla implementarono poi una versione compatibile in [[Mozilla]] 1.0. Successivamente è stato supportato anche da [[Apple]] con [[Safari (browser)|Safari]] 1.2 e da [[Opera Software]] con [[Opera (browser)|Opera]] 8.0.
 
La maggior parte delle pagine ben progettate che usando XMLHTTP sono destinate a nascondere le implementazioni dell'oggetto XMLHTTP incapsulando la sua invocazione con un [[Javascript]].
 
Funzionalità simili sono incluse in [[Document Object Model|DOM]] Livello 3 "Load and Save", già raccomandazione del [[W3C]].
Tuttavia, per ora ([[2005]]), nessun web browser supporta in modo completo questa specifica. XMLHttpRequest è comunque pensato come uno standard di fatto per il futuro.
 
== Problemi noti ==
=== La cache di Microsoft Internet Explorer ===
Il browser di casa Microsoft implementa una cache per le richieste GET. Gli sviluppatori che non sono abituati al caching non si aspettano che le richieste GET vengano memorizzate, oppure che essa venga ignorata come per il tasto di refresh. In alcune situazioni, non riuscire ad evitare la cache genera problemi al punto di poter essere considerato un bug. Una soluzione a questo è di utilizzare il metodo POST nelle request, che non viene mai memorizzato in cache.
 
Riga 101:
È importante notare che le tecniche mostrate dovrebbero essere utilizzate '''solo''' quando il caching risulta essere inappropriato e da evitare. Se questi metodi fossero usati indiscriminatamente, l'applicazione potrebbe risentirne in termini di prestazioni.
 
=== Problemi con caratteri accentato e non ASCII ===
Se la risposta del server non è in formato XML, il 'responseText' potrebbe non funzionare correttamente mentre si utilizzano i caratteri non-[[ASCII]], per esempio le lettere accentate come «è». Mentre Firefox gestisce correttamente questi dati e visualizza il carattere incriminato, Internet Explorer lo gestirà correttamente alla prima richiesta (anche se potrebbero esserci dei problemi) Se la richiesta viene ripetuta ed il browser di Microsoft utilizza un risultato memorizzato in cache, allora genererà un errore Javascript.
 
L'utilizzo di risposte XML e del metodo 'responseXML' permette di far funzionare tutto correttamente con qualsiasi carattere [[UTF-8]].
 
=== Riutilizzare l'oggetto XMLHttpRequest in IE ===
In Internet Explorer, se il metodo open viene chiamato dopo aver associato la callback onreadystatechange, ci sarà un problema nel riutilizzo dell'oggetto XHR. Per essere in grado di riutilizzare correttamente l'oggetto XHR, utilizzare il metodo open prima e settare onreadystatechange dopo.
Questo capita perché IE resetta implicitamente l'oggetto nel metodo open se lo stato risulta essere 'completed'.
Riga 114:
II
 
=== Supporto Cross Browser ===
Gli sviluppatori Microsoft furono i primi ad includere l'oggetto XMLHttp nel loro MSXML ActiveX control. Gli sviluppatori del progetto Open Source Mozilla crearono la loro versione di XmlHttp, non come un controllo ActiveX ma come un oggetto nativo nel browser, con il nome di XMLHttpRequest. Opera e Safari hanno sviluppato un oggetto simile, più vicino all'implementazione Mozilla.
Per creare librerie javascript portabili è necessario includere diversi controlli per utilizzare l'oggetto XMLHttp appropriato.
 
Internet Explorer 7 supporta nativamente XMLHttpRequest.
 
== Collegamenti esterni ==
* [http://developer.apple.com/internet/webcontent/xmlhttpreq.html DHTML e XML: L'oggetto XMLHttpRequest]
* [http://www.mozilla.org/xmlextras/ XML Extras]
* [http://xulplanet.com/references/objref/XMLHttpRequest.html XMLHttpRequest]
* [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/xmlsdk/html/xmobjxmlhttprequest.asp IXMLHTTPRequest]
* [http://jibbering.com/2002/4/httprequest.html Usare l'oggetto XML HTTP Request]
* [http://www.w3.org/TR/DOM-Level-3-LS/ Raccomandazione W3C: DOM Livello 3 specifica "Load and Save"]
* [http://www.google.com/webhp?complete=1&hl=en Google Suggest]
 
[[Categoria:XML]]
Riga 141:
[[ja:XMLHttpRequest]]
[[nl:XMLHTTP]]
[[pl:XMLHTTPXMLHttpRequest]]
[[pt:XMLHttpRequest]]
[[ro:XMLHttpRequest]]