The Asynchronous Module Definition (AMD) API specifies a mechanism for defining modules such that the module and its dependencies can be asynchronously loaded. The AMD pattern is well suited for the browser environment where synchronous loading can be problematic.
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.
API Specification https://github.com/amdjs/amdjs-api/wiki/AMD
Requirejs uses the AMD API http://requirejs.org/docs/whyamd.html