2015-06-16 25 views
15

XMLHttpRequest Synchronous đang bị phản đối, có nghĩa là hỗ trợ cho nó sẽ bị loại bỏ cuối cùng, đây là thông điệp mà tôi nhận được trong Chrome:Liệu Chrome và các trình duyệt khác có hỗ trợ XMLHttpRequest đồng bộ không?

Synchronous XMLHttpRequest về các chủ đề chính bị phản đối vì tác động có hại của nó đến kinh nghiệm của người dùng cuối . Để được trợ giúp thêm, hãy kiểm tra http://xhr.spec.whatwg.org/.

Vì vậy, câu hỏi của tôi là nếu và, nếu có, khi nào, các trình duyệt chính (đặc biệt là Chrome) sẽ giảm hỗ trợ cho XMLHttpRequest đồng bộ?

+0

Bạn không có khả năng nhận được câu trả lời có thẩm quyền ở đây, nhưng bạn có thể đọc về chính sách không dùng nữa cho Blink () và xem blink-dev cho các cuộc thảo luận không dùng nữa. – smorgan

Trả lời

9

Cập nhật: Chrome announcement của Chrome khi loại bỏ XHR đồng bộ trong khi thực hiện microtask ở phiên bản 54 không liên quan.


Tôi không có thông tin nội bộ, nhưng đây là một số nghiên cứu.

Các decision to deprecate đã được thực hiện trong tháng hai năm 2014. Chrome tuyên bố nó deprecated cùng tháng nhưng không show a warning cho đến tháng mười một năm 2014. Firefox deprecated nó trong tháng 6 năm 2014 (Firefox 30).

Nói chung, các tính năng quan trọng để web mất thời gian di chuyển. Ví dụ, Chrome deprecated NPAPI hỗ trợ trong Tháng Chín năm 2013. Nó là disabled by default vào tháng Tư năm 2015 (Chrome 42), và dự kiến ​​sẽ loại bỏ hoàn toàn trong Tháng Chín năm 2015.

Trong trường hợp này, ExtJSstill sử dụng tính năng này cho mô-đun tải. Các mô-đun khác sử dụng nó bên trong sự kiện unload để ping máy chủ, nhưng công nghệ thay thế beacon vẫn chưa sẵn sàng cho thời gian chính. Có some more trường hợp sử dụng hấp dẫn.

Khoảng 2.5% of websites (Cập nhật: giảm xuống 0,8% vào tháng 10 năm 2017) vẫn đang sử dụng XMLHttpRequest đồng bộ. Nó không giống như nó sẽ biến mất bất cứ lúc nào sớm.

+0

Cảm ơn bạn đã nghiên cứu, tôi đã đọc qua các cuộc thảo luận và thực sự không có bằng chứng trực tiếp cho thấy rằng nó sẽ sớm bị xóa, đặc biệt là xem xét số lượng trang web và công nghệ xóa tính năng sẽ ảnh hưởng. Tuy nhiên, tôi đã vượt qua các ngón tay của tôi để nó hoạt động đủ lâu :) –

+3

Cảnh báo này đã được các nhà phát triển của Chrome phát hiện trong một số nhà phát triển của chúng tôi hôm nay: 'Invoking 'send()' trên đồng bộ XHR trong quá trình thực hiện microtask không được chấp nhận và sẽ bị xóa trong M53, khoảng tháng 9 năm 2016. Xem https://www.chromestatus.com/features/5647113010544640 để biết thêm chi tiết.' – stevenghines

+0

Tôi nghĩ rằng liên kết "Đã cập nhật" mà bạn đề cập đến @ alan-tam đề cập đến việc sử dụng XHR đồng bộ trong một ngữ cảnh cụ thể, được gọi là microtask. Microtask là một loại mã đặc biệt http://stackoverflow.com/questions/25915634/difference-between-microtask-and-macrotask-within-an-event-loop-context nên XHR đồng bộ không bị loại bỏ nói chung. Cuộc thảo luận nhóm WHATWG không đề xuất thảo luận ở đây https://github.com/whatwg/xhr/issues/20 –

Các vấn đề liên quan