XMLHttpRequest un pò più standard

Ogni sito Web 2.0 che si rispetti utilizza solitamente almeno un pò di JavaScript ed un pò di Ajax, il quale è caratterizzato dall’uso del noto oggetto XMLHttpRequest.

Dopo i primi fuochi di artificio, gli sviluppatori più attenti si sono accorti delle troppe differenze di implementazione tra i vari browser ed ecco che il consorzio W3C ha finalmente deciso di rilasciare una nuova guida ancora incompleta ma sicuramente importante.

Perchè se ne sentiva la mancanza?

Come primo punto direi che la necessità di avere un comportamento analogo con tutti i browser, senza dover ricorrere a stratagemmi particolari, è ancora oggi fondamentale, al punto da “costringere” perfino Internet Explorer 7, noto per non amare molto standard e scelte della concorrenza, ad adeguarsi almeno in parte all’oggetto in questione, supportandolo nativamente e non tramite ActiveX.

Oltre questo aggiungerei che finalmente gli sviluppatori avranno un punto di riferimento ben preciso per implementare chiamate asincrone e non.

Vediamo in parte cosa vorrebbero proporci:

  1. l’invio dei dati va fatto trasformando gli stessi in UTF-8, ovvero sfruttando l’unica funzione idonea per raggiungere tale scopo: encodeURIComponent
  2. l’invio non è solo in POST o GET ma è anche in HEAD, PUT, DELETE ed OPTIONS
  3. lo stato con valore pari a 3 del parametro readyState deve permettere di sapere le informazioni ricevute dal server

Il primo punto è risaputo ma ancora oggi in tanti usano erroneamente funzioni come escape oppure encodeURI, anche per l’invio di stringhe con caratteri non ASCII.

Il secondo potrebbe suonare nuovo o incomprensibile per chi non si è mai posto il problema del tipo di richiesta oltre i soliti POST e GET, anch’esso quindi importante per approfondire l’utilità delle varianti.

Il terzo, finalmente, permetterà di mostrare agli utenti ciò che da tempo è possibile fare con FireFox, Opera e Safari, ovvero un preload dati.

Un esempio di diversi mesi fa potete vederlo in questa pagina, dove un indicatore vi mostrerà a che punto sia il download delle informazioni. Su Internet Explorer non è infatti ancora possibile informare gli utenti sullo stato dell’interazione se non appena questa sia completata. Impossibile quindi prevedere prima del dovuto eventuali errori, calcolare un tempo di attesa, mostrare in tempo reale ciò che si sta scaricando e così via.

Questi sono i punti a mio avviso degni di nota ma vorrei sapere se c’è qualcosa, secondo voi, altrettanto interessante.

Ti consigliamo anche

Link copiato negli appunti