Eliminare gli XHR sincroni

Eric Bidelman

Avviso. La specifica XMLHttpRequest2 è stata modificata di recente per vietare l'invio di una richiesta sincrona quando è impostato XMLHttpRequest.responseType. L'idea alla base di questo cambiamento è contribuire a ridurre l'ulteriore utilizzo di xhr sincroni, ove possibile.

Ad esempio, il seguente codice ora genererà un INVALID_ACCESS_ERR nelle build del canale per gli sviluppatori di Chrome e FF:

var xhr = new XMLHttpRequest();
xhr.responseType = 'arraybuffer';
xhr.open('GET', '/', false); // sync request
xhr.send();

Vedi Bug di WebKit, Bug di Mozilla

Gli XHR sincroni sono dannosi per una serie di motivi, ma il post del blog di MSDN, "Why You Should Use XMLHttpRequest Asyncly", offre un'ottima spiegazione dei problemi.

Si tratta in genere di un grande cambiamento per il web, ma ha il potenziale per mettere in pausa alcune app esistenti che si basavano sul comportamento sincrono. Controlla il tuo codice XHR e aggiornalo il prima possibile per utilizzare le richieste asincrone.