
94
|
第六章
雖然
utils
模組會被用到兩次(一次是在
require.ensure()
函式裡,一次是透過
application
模組),不過 script 程式很聰明,它只會載入一次模組。別忘了,模組需要
用到的相依模組,都要列進傳輸格式包裝裡面。
RequireJS
除了 Yabble 之 外,RequireJS(
http://requirejs.org
)也是一套非常受歡迎的載入器。
RequireJS 載入模組的做法有些微的不同—它採用的是一種稱為非同步式模組定義
(Asynchronous Module Definition,簡稱 AMD)的格式(
http://wiki.commonjs.org/wiki/
Modules/AsynchronousDefinition
)。會需要特別注意的差異在於:這套 API 是採用 eagerly
模式來取得相依模組,而非 lazily 模式。RequireJS 基本上完全相容於 CommonJS 模組,
只不過它在包裝模組時用的是不同的傳輸格式。
如果要載入 JavaScript 檔案,只要把檔案路徑傳入
require()
函式,再設定一組回叫函
式就可以了。當所有的相依檔案都載入完成之後,就會呼叫這組回叫函式:
<script>
require(["lib/application", "lib/utils"], function(application, utils) {
// 載入完成!
});
</script>
從這段範例程式碼可以看出,載入完成後呼叫的回叫函式 ...