AMD是"Asynchronous Module Definition"的縮寫,意思就是"異步模塊定義"。它採用異步方式加載模塊,模塊的加載不影響它後面語句的運行。全部依賴這個模塊的語句,都定義在一個回調函數中,等到加載完成以後,這個回調函數纔會運行。javascript
require([module], callback);html
在CommonJS中,有一個全局性方法require(),用於加載模塊。假定有一個數學模塊math.js,就能夠像下面這樣加載。java
var math = require('math');
在define下也有所不一樣git
// CMD define(function(require, exports, module) { var a = require('./a') a.doSomething() // 此處略去 100 行 var b = require('./b') // 依賴能夠就近書寫 b.doSomething() // ... }) // AMD 默認推薦的是 define(['./a', './b'], function(a, b) { // 依賴必須一開始就寫好 a.doSomething() // 此處略去 100 行 b.doSomething() ... })
說道正題。。github
先去官網下載require.js放到網頁底部加載,加載一個main.jsapi
<script type="text/javascript" src="require.js" defer async="true" data-main="main"></script>
main.js下面放異步
require(['math'], function (math){ alert(math.add(1,1)); });
math.js下面放async
define(function (){ var add = function (x,y){ return x+y; }; return { add: add }; });
本文參考函數
做者:玉伯
連接:https://www.zhihu.com/question/20351507/answer/14859415
來源:知乎
著做權歸做者全部。商業轉載請聯繫做者得到受權,非商業轉載請註明出處ui
和阮一峯的require.jshttp://www.ruanyifeng.com/blog/2012/10/asynchronous_module_definition.html