AMD https://github.com/amdjs/amdjs-api/wiki/AMD-(%E4%B8%AD%E6%96%87%E7%89%88)
異步模塊定義規(guī)范(AMD)制定了定義模塊的規(guī)則,
這樣模塊和模塊的依賴可以被異步加載。
這和瀏覽器的異步加載模塊的環(huán)境剛好適應
(瀏覽器同步加載模塊會導致性能、可用性、調(diào)試和跨域訪問等問題)。
index.html 在body部分
//這里的data-main = "main" 是同目錄 下的main.js
<script src = "lib/require.js" data-main = "main"></script>
=============
main.js
//配置
require.config({
paths :{
//這里是先加載 , 不執(zhí)行 ,所以 不用但心 執(zhí)行 順序
//注意 這里 的 文件 不需要 寫 后綴
'jquery' : './lib/jquery-2.1.1.min',
'Zepto' : './lib/zepto',
'underscore': './lib/underscore.min',
//backbone 依賴 underscore庫 , 所以必需有
//backbone 單頁 應用
'backbone' : './lib/backbone.min',
//text 用來 解析 切換 內(nèi)容 頁面的
'text' : './lib/text',
'home' : './js/home'
}
});
// require方法: 當數(shù)組內(nèi)的依賴文件加載完畢之后,
//再執(zhí)行回調(diào)函數(shù)內(nèi)的方法。
//這里可以只加載 , 不執(zhí)行回調(diào)函數(shù) , 如test
//require(['jquery','home','test'],function($,home){
//假如 下面的 依賴文件 上面沒寫, 則 根據(jù) 路徑 來找
//如 router 假如 ,找的只是js文件
require(['jquery','router'],function($,router){
// home.fn1();
});
========================
home.js
define(['Zepto'],function(Zepto){
console.log("home.js");
function fn1(){
$('html').css({
'background':'#000'
});
}
function fn2(){
$('body').html("hello AMD");
}
//多個方法 ,通過 obj返回
return {
fn1:fn1,
fn2:fn2
}
});