Se débarrasser des requêtes XHR synchrones

Eric Bidelman

Attention ! La spécification XMLHttpRequest2 a été modifiée récemment pour interdire l'envoi de requêtes synchrones lorsque XMLHttpRequest.responseType est défini. L'idée derrière ce changement est d'aider à réduire l'utilisation supplémentaire des xhrs synchrones dans la mesure du possible.

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

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

Voir WebKit Bug et Mozilla Bug

Les requêtes XHR synchrones sont médiocres pour plusieurs raisons, mais l'article de blog de MSDN, "Pourquoi vous devez utiliser XMLHttpRequest Asynchronously" pour en savoir plus,

Il s'agit généralement d'un changement important pour le Web, mais il peut entraîner l'interruption de certaines applications existantes qui dépendaient d'un comportement synchrone. Veuillez examiner votre code XHR et le mettre à jour dès que possible pour utiliser des requêtes asynchrones.