AMD--require
AMD規(guī)范:異步模塊加載機(jī)制
服務(wù)器端 -- 同步加載 ? 瀏覽器端 -- 異步加載 ? ? ? --> ?因?yàn)樵诜?wù)器端中,所有模塊都存放在硬盤中,等待時(shí)間就是硬盤讀取時(shí)間卧惜,但是瀏覽器端,所有模塊都存放在服務(wù)器上,等待時(shí)間取決于網(wǎng)速快慢躁锁,可能很長(zhǎng)時(shí)間瀏覽器處于假死狀態(tài)
1.下載require.js,確定index.js為程序入口卵史,則
<script src="js/require.js" data-main="js/index"></script> ? ?--> ?data-main:指定網(wǎng)頁(yè)程序的主模塊
2.index.js頭部 ?使用require.config()對(duì)模塊的加載進(jìn)行自定義
require.config({
baseUrl:"js/xx",
path:{"jquery":"jquery.min","自定義模塊":"自定義"}
});
然后
require(["jquery","自定義模塊"],function($,xx){回調(diào)函數(shù) ?--> ?所有依賴這個(gè)模塊的語(yǔ)句战转,都定義在回調(diào)函數(shù)中,等依賴模塊加載完畢回調(diào)函數(shù)執(zhí)行})
其中
1)如果依賴的是符合AMD規(guī)范的模塊以躯,如jquery槐秧,則直接require就行
2)如果依賴的是自定義的模塊,則自定義模塊的文件中
define(模塊標(biāo)識(shí)忧设,所依賴的模塊刁标,回調(diào)函數(shù)(){return 對(duì)象})
當(dāng)index中require()加載這個(gè)自定義模塊時(shí),會(huì)先加載所依賴的模塊
3)如果依賴的是非規(guī)范模塊址晕,需要在require.config中定義特征
require.conifig({
shim:{"jquery.scroll":{deps:['jquery'],exports:'jquery.fn.scroll'}} ?});
shim:配置不兼容的模塊
exports:這個(gè)模塊外部調(diào)用時(shí)的名稱
deps:該模塊的依賴性