Se débarrasser des requêtes XHR synchrones

Attention ! La spécification XMLHttpRequest2 a récemment été modifiée pour interdire l'envoi d'une requête synchrone lorsque XMLHttpRequest.responseType est défini. L'idée derrière ce changement est de réduire autant que possible l'utilisation des XHR synchrones.

Par exemple, le code suivant génère désormais une INVALID_ACCESS_ERR dans les builds du canal développeur de Chrome et de FF:

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

Voir Bug WebKit, Bug Mozilla

Les requêtes XHR synchrones sont mauvaises pour plusieurs raisons, mais l'article de blog de MSDN intitulé Why You Should Use XMLHttpRequest Asynchronously (Pourquoi utiliser XMLHttpRequest de manière asynchrone) explique parfaitement les problèmes.

Il s'agit généralement d'un changement positif pour le Web, mais il peut perturber certaines applications existantes qui reposaient sur un comportement synchrone. Veuillez examiner votre code XHR et le mettre à jour dès que possible pour utiliser des requêtes asynchrones.