Loại bỏ XHR đồng bộ

Eric Bidelman

Lưu ý! Gần đây, thông số kỹ thuật XMLHttpRequest2 đã được thay đổi để cấm gửi yêu cầu đồng bộ khi đặt XMLHttpRequest.responseType. Ý tưởng đằng sau sự thay đổi này là để giúp giảm thiểu việc sử dụng các xhr đồng bộ bất cứ khi nào có thể.

Ví dụ: mã sau đây bây giờ sẽ gửi một INVALID_ACCESS_ERR vào các bản dựng kênh nhà phát triển của Chrome và FF:

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

Xem Lỗi STDEV, Lỗi Mozilla

XHR đồng bộ không tốt vì một số lý do, nhưng bài đăng trên blog của MSDN, "Why You should Use XMLHttpRequest không đồng bộ" có nội dung giải thích rõ ràng về các vấn đề này.

Nhìn chung, đây là một thay đổi tuyệt vời cho web, nhưng có khả năng làm hỏng một số ứng dụng hiện có đang dựa vào hành vi đồng bộ. Vui lòng xem qua mã XHR của bạn và cập nhật mã này sớm nhất có thể để sử dụng các yêu cầu không đồng bộ.