Chrome 和其他浏览器会放弃对同步 XMLHttpRequest 的支持吗?

Posted

技术标签:

【中文标题】Chrome 和其他浏览器会放弃对同步 XMLHttpRequest 的支持吗?【英文标题】:Will Chrome and other browsers drop support for Synchronous XMLHttpRequest? 【发布时间】:2015-09-01 18:34:42 【问题描述】:

Synchronous XMLHttpRequest 已被弃用,这意味着对它的支持最终将被删除,这是我在 Chrome 中收到的消息:

主线程上的同步 XMLHttpRequest 已被弃用,因为它会对最终用户的体验产生不利影响。如需更多帮助,请查看http://xhr.spec.whatwg.org/。

所以,我的问题是,如果是,主要浏览器(尤其是 Chrome)何时会放弃对同步 XMLHttpRequest 的支持?

【问题讨论】:

您不太可能在此处获得权威答案,但您可以阅读有关 Blink 的弃用政策 (chromium.org/blink#TOC-Launch-Process:-Deprecation>) 并观看 blink-dev 以了解弃用讨论。 【参考方案1】:

更新:(最后更新于 2019 年 2 月)

Chrome 54 removes 在微任务期间支持同步 XHR 执行。 Chrome 80 removes 在页面关闭期间支持同步 XHR,企业用户可以在 Chrome 82 之前使用策略标志来解决问题。

恕我直言,现在(比 6 年前)这个功能最终被删除的可能性更高。与往常一样,建议避免同步 XHR 的新用途,并抢先迁移现有的,因为浏览器可以选择在几个月内删除它们。


我没有内幕消息,但这里有一些研究。

decision to deprecate 是在 2014 年 2 月制造的。Chrome 在同月宣布它为 deprecated,但直到 2014 年 11 月才宣布为 show a warning。Firefox deprecated 是在 2014 年 6 月(Firefox 30)。

一般来说,网络的重要功能需要时间来迁移。例如,Chrome deprecated NPAPI 支持于 2013 年 9 月。它是 disabled by default 于 2015 年 4 月 (Chrome 42),并计划在 2015 年 9 月完全删除。

在这种情况下,ExtJS still 使用此功能进行模块加载。其他模块在unload 事件中使用它来ping 服务器,但beacon 替换技术远未准备好迎接黄金时间。有some more 引人注目的用例。

大约2.5% of websites(更新:2017 年 10 月降至 0.8%)仍在使用同步 XMLHttpRequest。它看起来不会很快消失。

【讨论】:

感谢您的研究,我已经阅读了讨论,确实没有直接证据表明它会很快被删除,特别是考虑到删除该功能的网站和技术数量会影响。但是,我希望它能够保持足够长的功能:) 我们的一位开发人员今天在 Chrome 开发人员工具中看到了此警告:Invoking 'send()' on a sync XHR during microtask execution is deprecated and will be removed in M53, around September 2016. See https://www.chromestatus.com/features/5647113010544640 for more details. 我认为您提到的“更新”链接@alan-tam 是指在特定上下文中使用同步 XHR,称为微任务。微任务是一种特殊类型的代码***.com/questions/25915634/…,因此同步 XHR 通常不会被删除。 WHATWG 小组讨论并未建议将其删除 github.com/whatwg/xhr/issues/20 正式版80及以上将不允许Page Dismissal中同步XMLHTTPRequest() 对我来说仍然没有禁用。 2021 年 7 月使用 Chrome v91:[弃用] 主线程上的同步 XMLHttpRequest 已弃用,因为它对最终用户的体验产生不利影响。如需更多帮助,请查看xhr.spec.whatwg.org。

以上是关于Chrome 和其他浏览器会放弃对同步 XMLHttpRequest 的支持吗?的主要内容,如果未能解决你的问题,请参考以下文章

Chrome和火狐浏览器即将放弃对FTP的支持

我为什么放弃了 Chrome?

手机chrome无法开启同步

chrome可以手动同步吗

chrome浏览器书签为啥不能同步

无需爬梯,教你「曲线救国」顺畅使用 Chrome