AMD: asynchronize module definition: 一种异步的 javascript的加载方式。
访问量: 2398
refer to: http://requirejs.org/docs/whyamd.html,
https://github.com/amdjs/amdjs-api/wiki/require-(%E4%B8%AD%E6%96%87%E7%89%88)
目前国内比较常见的是 requirejs 使用的 require 方法。
这里介绍的就是第二种:AMD加载模块的方式,一种异步的加载js文件的方式。
好处有:
1. 异步加载文件,不会因为顺序/同步加载而产生问题
2. 不需要依赖顺序。
例如:
我们在使用 jquery-ui 之前,必须先引用: jquery:
<script>http://...jquery.js</script> <script>http://...jquery-ui.js</script>
如果把 jquery-ui 放到 jquery的声明前面,这个页面就会出错。 因为jquery-ui是对jquery 依赖的。
如果使用了 AMD , 方式, 就没有这个,你把声明写到哪里都是无所谓的。前面后面都行。跟coffeescript 一样,它会帮你在最前面把所有的第三方模块都做个声明, 然后后面的引用就不会报错。也就是加载慢一点儿而已。
// 定义一个 module define(['jquery'],function($) { return function(){}; }) // 定义多个module, 包含各种依赖关系: define(['jquery', 'jquery-ui'], function($, 'jquery-ui'){ return function(){}; });