|
1. AMD的由來(lái)
前端技術(shù)雖然在不斷發(fā)展之中,卻一直沒有質(zhì)的飛躍。除了已有的各大著名框架,比如Dojo,JQuery,ExtJs等等,很多公司也都有著自己的前端開發(fā)框架。這些框架的使用效率以及開發(fā)質(zhì)量在很大程度上都取決于開發(fā)者對(duì)其的熟悉程度,以及對(duì)JavaScript的熟悉程度,這也是為什么很多公司的技術(shù)帶頭人都喜歡開發(fā)一個(gè)自己的框架。開發(fā)一個(gè)自己會(huì)用的框架并不難,但開發(fā)一個(gè)大家都喜歡的框架卻很難。
從一個(gè)框架遷移到一個(gè)新的框架,開發(fā)者很有可能還會(huì)按照原有框架的思維去思考和解決問題。這其中的一個(gè)重要原因就是JavaScript本身的靈活性:框架沒辦法絕對(duì)的約束你的行為,一件事情總可以用多種途徑去實(shí)現(xiàn),所以我們只能在方法學(xué)上去引導(dǎo)正確的實(shí)施方法。慶幸的是,在這個(gè)層面上的軟件方法學(xué)研究,一直有人在去不斷的嘗試和改進(jìn),CommonJS就是其中的一個(gè)重要組織。他們提出了許多新的JavaScript架構(gòu)方案和標(biāo)準(zhǔn),希望能為前端開發(fā)提供銀蛋,提供統(tǒng)一的指引。
AMD規(guī)范就是其中比較著名一個(gè),全稱是Asynchronous Module Definition,即異步模塊加載機(jī)制。從它的規(guī)范描述頁(yè)面看,AMD很短也很簡(jiǎn)單,但它卻完整描述了模塊的定義,依賴關(guān)系,引用關(guān)系以及加載機(jī)制。從它被requireJS,NodeJs,Dojo,JQuery使用也可以看出它具有很大的價(jià)值,沒錯(cuò),JQuery近期也采用了AMD規(guī)范。在這篇文章中,我們就將介紹AMD的性質(zhì),用法,優(yōu)勢(shì)以及應(yīng)用場(chǎng)景。從AMD中我們也能學(xué)習(xí)到如何在更高層面去設(shè)計(jì)自己的前端應(yīng)用。
2. AMD是什么
作為一個(gè)規(guī)范,只需定義其語(yǔ)法API,而不關(guān)心其實(shí)現(xiàn)。AMD規(guī)范簡(jiǎn)單到只有一個(gè)API,即define函數(shù):
define([module-name?], [array-of-dependencies?], [module-factory-or-object]);
it知識(shí)庫(kù):Dojo1.6新特性:AMD規(guī)范,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。