Uwaga! Specyfikacja XMLHttpRequest2 została niedawno zmieniona, aby uniemożliwić wysyłanie żądań synchronicznych, gdy ustawiono XMLHttpRequest.responseType
. Celem tej zmiany jest ograniczenie dalszego wykorzystania synchronicznych xhr, gdy tylko jest to możliwe.
Na przykład ten kod spowoduje teraz wywołanie INVALID_ACCESS_ERR
w kompilacjach Chrome i FF w kanale dla programistów:
var xhr = new XMLHttpRequest();
xhr.responseType = 'arraybuffer';
xhr.open('GET', '/', false); // sync request
xhr.send();
Zobacz Błąd WebKit, Błąd Mozilla
Synchroniczne XHR są z wielu powodów szkodliwych, ale w poście na blogu MSDN „Why You Child Use XMLHttpRequest Asynchronously” (Dlaczego warto używać XMLHttpRequest Asynchronously) zawiera świetne objaśnienie tych problemów.
W przypadku witryn jest to zwykle świetna zmiana, ale może zaburzyć działanie niektórych istniejących aplikacji, które działają w sposób synchroniczny. Aby korzystać z żądań asynchronicznych, sprawdź swój kod XHR i zaktualizuj go jak najszybciej.