การเลิกใช้ XHR ที่มาพร้อมกัน

โปรดทราบ เมื่อเร็วๆ นี้ มีการเปลี่ยนแปลงข้อกำหนด XMLHttpRequest2 เพื่อห้ามส่งคำขอพร้อมกันเมื่อตั้งค่า XMLHttpRequest.responseType แนวคิดเบื้องหลังการเปลี่ยนแปลงนี้คือ ช่วยลดการใช้งาน xhr แบบซิงโครนัสให้มากขึ้นเมื่อเป็นไปได้

ตัวอย่างเช่น ตอนนี้โค้ดต่อไปนี้จะส่ง INVALID_ACCESS_ERR ในบิลด์ของ Chrome และ FF เวอร์ชันนักพัฒนาซอฟต์แวร์

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

ดูข้อบกพร่องของ WebKit, ข้อบกพร่องของ Mozilla

XHR แบบซิงโครนัสมีประโยชน์ด้วยเหตุผลหลายประการ แต่บล็อกโพสต์ของ MSDN ที่ชื่อ "Why You Should Use XMLHttpRequest Asynchronously" มีคำอธิบายที่ดีเกี่ยวกับปัญหาดังกล่าว

นี่เป็นการเปลี่ยนแปลงที่ยอดเยี่ยมสำหรับเว็บ แต่ก็มีโอกาสที่จะทำให้แอปที่มีอยู่บางแอปอาศัยพฤติกรรมการทำงานพร้อมกันเสียหายได้ โปรดตรวจสอบโค้ด XHR ของคุณและอัปเดตโดยเร็วที่สุดเพื่อใช้คำขอแบบอะซิงโครนัส