Eliminação de XHRs síncronos

Atenção! A especificação XMLHttpRequest2 foi alterada recentemente para proibir o envio de uma solicitação síncrona quando XMLHttpRequest.responseType está definido. A ideia por trás da mudança é ajudar a reduzir o uso de XHRs síncronos sempre que possível.

Por exemplo, o código a seguir agora vai gerar uma INVALID_ACCESS_ERR em builds do canal de desenvolvedor do Chrome e do FF:

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

Consulte Bug do WebKit e Bug do Mozilla.

XHRs síncronos são ruins por vários motivos, mas a postagem do blog da MSDN, "Por que você deve usar XMLHttpRequest de forma assíncrona", tem uma ótima explicação dos problemas.

Essa é uma mudança geralmente ótima para a Web, mas pode interromper alguns apps que dependiam do comportamento síncrono. Analise seu código XHR e atualize-o o mais rápido possível para usar solicitações assíncronas.