Asynchronous Module Definition (AMD)
The Asynchronous Module Definition (AMD) API specifies a mechanism for defining modules such that the module and its dependencies can be asynchronously loaded. This is particularly well suited for the browser environment where synchronous loading of modules incurs performance, usability, debugging, and cross-domain access problems.
When it comes to application or web page speed and performance, loading scripts asynchronously is of utmost importance. This allows the browser to render the page without waiting for resources to load.
Synchronous XMLHTTPRequest Deprecation
Browsers are deprecating synchronous AJAX requests among other methods in order to encourage developers to use asynchronous programming methods when issuing network requests.