Will Chrome and other browsers drop support for Synchronous XMLHttpRequest?

mikhail-t picture mikhail-t · Jun 16, 2015 · Viewed 7.2k times · Source

Synchronous XMLHttpRequest is being deprecated, meaning support for it will be removed eventually, here is the message I get in Chrome:

Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. For more help, check http://xhr.spec.whatwg.org/.

So, my question is if, and, if yes, when, major browsers (esp. Chrome) will drop support for Synchronous XMLHttpRequest?

Answer

Alan Tam picture Alan Tam · Jun 28, 2015

Updates: (last updated Feb 2019)

  • Chrome 54 removes support of synchronous XHR during microtask execution.
  • Chrome 80 removes supports of synchronous XHR during page dismissal, where enterprise users can workaround using a policy flag until Chrome 82.

IMHO, there is now a higher chance (than 6 years ago) that this functionality will eventually be removed. As always, advise avoiding new uses of synchronous XHR, and migrate existing ones preemptively as browsers can choose to remove them with just a couple month's notice.


I have no insider information, but here is some research.

The decision to deprecate was made in Feb 2014. Chrome declared it deprecated the same month but did not show a warning until Nov 2014. Firefox deprecated it in June 2014 (Firefox 30).

In general, important features for the web take time to migrate. For example, Chrome deprecated NPAPI support in Sep 2013. It is disabled by default in April 2015 (Chrome 42), and is scheduled for complete removal in Sep 2015.

In this case, ExtJS still uses this feature for module loading. Other modules use it inside an unload event to ping the server, but beacon replacement technology is far from ready for prime time. There are some more compelling use cases.

Roughly 2.5% of websites (Update: dropped to 0.8% in Oct 2017) are still using synchronous XMLHttpRequest. It does not look like it will go away any time soon.