Synchrone XHRs loswerden

Eric Bidelman

Hinweis: Die Spezifikation „XMLHttpRequest2“ wurde vor Kurzem geändert, um das Senden einer synchronen Anfrage zu verhindern, wenn XMLHttpRequest.responseType festgelegt ist. Der Grundgedanke hinter dieser Änderung besteht darin, die weitere Verwendung synchroner xhr-Werte nach Möglichkeit zu minimieren.

Beispielsweise wird durch den folgenden Code jetzt ein INVALID_ACCESS_ERR in Entwicklerkanal-Builds von Chrome und FF ausgegeben:

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

Siehe WebKit-Fehler und Mozilla-Fehler

Synchrone XHRs sind aus mehreren Gründen schlecht, aber der MSDN-Blogpost "Why You Should Use XMLHttpRequest Asynchronously" enthält eine gute Erklärung für die Probleme.

Dies ist im Allgemeinen eine große Veränderung für das Web, kann jedoch einige vorhandene Anwendungen beeinträchtigen, die auf synchronem Verhalten basieren. Prüfen Sie Ihren XHR-Code und aktualisieren Sie ihn so bald wie möglich, um asynchrone Anfragen zu verwenden.