XMLHttpRequest

XMLHttpRequest (spesso abbreviato XHR ) è un oggetto browser accessibile in JavaScript che consente di ottenere dati in XML , JSON , ma anche HTML o anche semplice testo utilizzando richieste HTTP .

Vantaggi e svantaggi

Il vantaggio principale è nel lato asincrono. L'intera pagina non deve più essere ricaricata completamente quando una parte deve cambiare, il che fa risparmiare tempo e migliora l'interazione con il server e quindi il client.

Gli svantaggi sono che:

Il contenuto dinamico visualizzato dall'utilizzo di JavaScript spiega perché il browser non può avere lo stesso comportamento di una pagina html caricata nella sua interezza (salvataggio link, segnalibro, pulsante Indietro).

Esistono altre differenze:

Il punto di vista del programmatore

Creazione di un oggetto XMLHttpRequest

Qualunque sia il browser:

function createXhrObject() { if (window.XMLHttpRequest) return new XMLHttpRequest(); if (window.ActiveXObject) { var names = [ "Msxml2.XMLHTTP.6.0", "Msxml2.XMLHTTP.3.0", "Msxml2.XMLHTTP", "Microsoft.XMLHTTP" ]; for(var i in names) { try{ return new ActiveXObject(names[i]); } catch(e){} } } window.alert("Votre navigateur ne prend pas en charge l'objet XMLHTTPRequest."); return null; // non supporté } xhr = createXhrObject();

Caricamento del codice eseguibile

Il codice JavaScript presente nella pagina caricata tramite XMLHttpRequest non verrà eseguito al momento del caricamento.

È necessario inserire il codice JavaScript caricato nella pagina corrente affinché possa essere eseguito.

Il codice seguente può anche eseguire il JavaScript trovato tra i tag <script> </script> nella pagina figlia, dopo averlo caricato come descritto in precedenza:

if (XHR.readyState == 4) { document.getElementById('contenu').innerHTML = XHR.responseText; var js = document.getElementById('contenu').getElementsByTagName('script'); for( var i in js ) { eval(js[i].text); } }

Storico

XMLHttpRequest è stato sviluppato per la prima volta da Microsoft , come oggetto ActiveX , per Internet Explorer 5.0. (Settembre 1998 ). È stato quindi rilevato e implementato successivamente con Mozilla 1.0 (Maggio 2002), Safari 1.2 (Febbraio 2004), Opera 7.60 TP1 (Agosto 2004) quindi Konqueror 3.4 (Marzo 2005).

Nell'aprile 2006 , è stato proposto di diventare una raccomandazione del W3C .

L'utilizzo di XMLHttpRequest richiede l'uso del linguaggio JavaScript.

I browser lo implementano in diversi modi: ActiveX per Internet Explorer, oggetto per altri. La creazione dell'oggetto viene quindi eseguita in modo diverso a seconda del browser. Inoltre, per creare l'ActiveX in Internet Explorer, è necessario testare diverse versioni. Tuttavia, dopo aver creato l'oggetto, i metodi e gli attributi sono gli stessi per tutti i browser.

Microsoft è stata la prima a incorporare (settembre 1998 ) la funzionalità XMLHttp nel proprio browser Web Internet Explorer (da 5 a 7) sotto forma di ActiveX (Internet Explorer <7) con il nome MSXML.

Gli sviluppatori del progetto Mozilla hanno quindi implementato la loro versione di XMLHTTP con il nome XMLHttpRequest nella versione 1.0 di Mozilla (Maggio 2002). Altri browser hanno quindi implementato XMLHttp a loro volta: Safari 1.2 (Febbraio 2004), Konqueror 3.4 (Marzo 2005), Opera 8.0 (Aprile 2005), icab 3.0b352.

Il World Wide Web Consortium cerca quindi di standardizzare l' API (Programming Interface) pubblicando le specifiche API nella sua versione 1 sotto il nome XMLHttpRequest su15 aprile 2007 e la versione 2 in poi 25 febbraio 2008. Esistono quindi diverse implementazioni di XMLHttpRequest. Per supportare tutte queste versioni, un'API javascript ( AJAX ) di alto livello consente di ignorare le diverse implementazioni e versioni di XMLHttpRequest.

Tuttavia in questo momento (nel 2007), XMLHttpRequest è stato criticato perché ha influenzato l' accessibilità del web .

Lo standard XMLHttpRequest ha un successore, XMLHttpRequest Livello 2 e anche altre tecnologie lo sostituiscono:

  • Il W3C aveva proposto il controllo degli accessi per scambiare dati con server su domini diversi,
  • Microsoft aveva offerto XDomainRequest da Internet Explorer 8 ora sostituito dalla versione 2 dello standard.
  • WebSocket offre le possibilità dell'oggetto e altro ancora.

Da vedere anche

Articoli Correlati

link esterno

Note e riferimenti

  1. Sito Mozilla (MDN) - API XMLHttpRequest
  2. Se gli elementi in un widget gestito vengono caricati, ad esempio, tramite l'oggetto XMLHttpRequest, e non sono sempre presenti nel DOM, gli autori dovrebbero usare aria-level, aria-posinset e aria-setsize e assicurarsi che aria-owns sia non è necessario trasmettere l'appartenenza con il widget.
  3. "Changelog per Opera 7.60 Technical Preview 1 per Windows" (versione del 21 gennaio 2012 su Internet Archive ) ,21 gennaio 2012
  4. (en) L'oggetto XMLHttpRequest , o (en) W3C - XMLHttpRequest Working Draft