日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

Require的用法及短語(yǔ) require的用法( 二 )


AMD規(guī)范

Require的用法及短語(yǔ) require的用法



有了服務(wù)器端模塊以后,很自然地,大家就想要客戶端模塊 。而且最好兩者能夠兼容,一個(gè)模塊不用修改 , 在服務(wù)器和瀏覽器都可以運(yùn)行 。
但是,由于一個(gè)重大的局限,使得CommonJS規(guī)范不適用于瀏覽器環(huán)境 。還是上一節(jié)的代碼 , 如果在瀏覽器中運(yùn)行,會(huì)有一個(gè)很大的問題

Require的用法及短語(yǔ) require的用法



第二行math.add(2, 3),在第一行require(‘math’)之后運(yùn)行 , 因此必須等math.js加載完成 。也就是說,如果加載時(shí)間很長(zhǎng),整個(gè)應(yīng)用就會(huì)停在那里等 。
這對(duì)服務(wù)器端不是一個(gè)問題,因?yàn)樗械哪K都存放在本地硬盤,可以同步加載完成 , 等待時(shí)間就是硬盤的讀取時(shí)間 。但是,對(duì)于瀏覽器,這卻是一個(gè)大問題 , 因?yàn)槟K都放在服務(wù)器端,等待時(shí)間取決于網(wǎng)速的快慢,可能要等很長(zhǎng)時(shí)間,瀏覽器處于”假死”狀態(tài) 。
因此,瀏覽器端的模塊,不能采用”同步加載”(synchronous),只能采用”異步加載”(asynchronous) 。這就是AMD規(guī)范誕生的背景 。
AMD是”Asynchronous Module Definition”的縮寫,意思就是”異步模塊定義” 。它采用異步方式加載模塊,模塊的加載不影響它后面語(yǔ)句的運(yùn)行 。所有依賴這個(gè)模塊的語(yǔ)句,都定義在一個(gè)回調(diào)函數(shù)中,等到加載完成之后,這個(gè)回調(diào)函數(shù)才會(huì)運(yùn)行 。
模塊必須采用特定的define()函數(shù)來定義 。

Require的用法及短語(yǔ) require的用法



  • id:字符串,模塊名稱(可選)
  • dependencies: 是我們要載入的依賴模塊(可選),使用相對(duì)路徑 。,注意是數(shù)組格式
  • factory: 工廠方法,返回一個(gè)模塊函數(shù)
如果一個(gè)模塊不依賴其他模塊,那么可以直接定義在define()函數(shù)之中 。

Require的用法及短語(yǔ) require的用法



如果這個(gè)模塊還依賴其他模塊,那么define()函數(shù)的第一個(gè)參數(shù),必須是一個(gè)數(shù)組,指明該模塊的依賴性 。

Require的用法及短語(yǔ) require的用法



當(dāng)require()函數(shù)加載上面這個(gè)模塊的時(shí)候,就會(huì)先加載Lib.js文件 。
AMD也采用require()語(yǔ)句加載模塊 , 但是不同于CommonJS,它要求兩個(gè)參數(shù):

Require的用法及短語(yǔ) require的用法



第一個(gè)參數(shù)[module],是一個(gè)數(shù)組,里面的成員就是要加載的模塊;第二個(gè)參數(shù)callback,則是加載成功之后的回調(diào)函數(shù) 。如果將前面的代碼改寫成AMD形式,就是下面這樣:

Require的用法及短語(yǔ) require的用法



math.add()與math模塊加載不是同步的,瀏覽器不會(huì)發(fā)生假死 。所以很顯然,AMD比較適合瀏覽器環(huán)境 。
目前,主要有兩個(gè)Javascript庫(kù)實(shí)現(xiàn)了AMD規(guī)范:require.js和curl.js 。
CMD規(guī)范

Require的用法及短語(yǔ) require的用法



CMD (Common Module Definition), 是seajs推崇的規(guī)范,CMD則是依賴就近,用的時(shí)候再require 。它寫起來是這樣的:

Require的用法及短語(yǔ) require的用法



CMD與AMD一樣 , 也是采用特定的define()函數(shù)來定義,用require方式來引用模塊

Require的用法及短語(yǔ) require的用法


推薦閱讀