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 estiver 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 gera uma INVALID_ACCESS_ERR em builds de 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, Bug do Mozilla

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

Geralmente, essa é uma grande mudança para a Web, mas tem o potencial de romper alguns apps existentes que dependiam do comportamento síncrono. Verifique o código XHR e atualize-o o mais rápido possível para usar solicitações assíncronas.