Pozbywanie się synchronicznych komponentów XHR

Uwaga! Niedawno zmieniono specyfikację XMLHttpRequest2, aby zabronić wysyłania żądania synchronicznego, gdy ustawiono wartość XMLHttpRequest.responseType. Celem tej zmiany jest ograniczenie używania synchronicznych żądań XHR, o ile to możliwe.

Na przykład ten kod spowoduje błąd INVALID_ACCESS_ERR w kompilacji na kanale dla deweloperów w Chrome i Firefoxie:

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

Zobacz błąd WebKitbłąd Mozilla.

Synchroniczne żądania XHR są niekorzystne z wielu powodów, ale w poście na blogu MSDN Dlaczego warto używać asynchronicznego żądania XMLHttpRequest znajdziesz świetne wyjaśnienie tych problemów.

Jest to ogólnie dobra zmiana dla internetu, ale może spowodować awarię niektórych istniejących aplikacji, które działały w sposób synchroniczny. Sprawdź kod XHR i jak najszybciej go zaktualizuj, aby używać żądań asynchronicznych.