동기 XHR 제거

에릭 비델만

알림 XMLHttpRequest.responseType가 설정된 경우 동기식 요청 전송을 금지하도록 XMLHttpRequest2 사양이 최근에 변경되었습니다. 이러한 변경의 아이디어는 가능하면 동기식 xhr의 사용을 줄이는 데 도움이 됩니다.

예를 들어 이제 다음 코드는 Chrome 및 FF의 개발자 채널 빌드에서 INVALID_ACCESS_ERR을 발생시킵니다.

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

WebKit 버그, Mozilla 버그를 참고하세요.

동기식 XHR은 여러 가지 이유로 부적절하지만 MSDN의 블로그 게시물 'XMLHttpRequest를 비동기적으로 사용해야 하는 이유'에 이 문제에 대한 자세한 설명이 있습니다.

이는 일반적으로 웹에 큰 변화이지만 동기식 동작에 의존하는 일부 기존 앱이 중단될 가능성이 있습니다. 비동기식 요청을 사용하려면 XHR 코드를 살펴보고 최대한 빨리 업데이트하세요.