說完了出身,即出身自dojo/_base/目錄下的config模塊,那就要好好講講這對象有什么可以寫的屬性了。
官方說是用於更好的特征檢測的,具體有什么用現在還不得知。
例如:
<script>
dojoConfig = {
has: {
"dojo-amd-factory-scan": false
}
};
</script>
和
<script>
dojoConfig = {
has: {
"dojo-firebug": true,
"dojo-debug-messages": true
}
};
</script>
其中,dojo-amd-factory-scan子屬性表示AMD工廠掃描;
dojo-firebug子屬性為true表示在沒有調試面板的瀏覽器中增加一個調試區域,對應dojo/_base/config模塊的isDebug屬性;如果瀏覽器有調試面板,那這個相當於沒設置。
dojo-debug-message子屬性表示在調試面板時控制是否出現警告信息。
has屬性大概是為了調試或者某些SDK環境特性而生的吧。
模塊加載器在dojo 1.7支持AMD后進行了重寫,所以為了更方便加載異步js模塊,模塊加載器就要進行手工配置了。
模塊加載器在后台工作,我們只需要了解dojoConfig中所需要配置的10個屬性,本篇介紹幾個比較重要的,下篇介紹剩余的。
基礎目錄。即指明所有的模塊及模塊的相對目錄所在的目錄,繞口是有點繞口。
打個比方,世界上有很多個兒子,但是你兒子不是我兒子,說兒子的時候必須說是誰家的。這個兒子,就是模塊,孫子也是模塊,那么當我指明了是哪個家族(基礎目錄)的時候,這些兒子孫子就能精確的找到是誰了。
看圖:
代碼即為:
baseUrl: '../js/modules/'
一個包名(包是文件夾)和包的位置(文件夾的位置)鍵值對的對象數組。
舉例如下:
因為在上方指明了baseUrl,所以packages的第一個對象(包和路徑鍵值對)中的路徑屬性location可以是空,當然,如果包還要繼續鑽下去,location就要指定一下了。
在packages中聲明的包,其內必須有main.js入口文件。聲明后,例如圖上的myModule包,就可以在全局入口require函數中調用了,無需再寫路徑。
這個包的效果就是把節點名稱是"greeting"的HTML元素的內容換為字符串'HHHHHH'。
ps:我感覺理解還不是很深刻,日后繼續更新此處。
把packages屬性中的對象進行拆分,packages變為包名的字符串數組(原來的name子屬性),而paths屬性則把原來的location子屬性記錄下來。
見下:
上下兩個dojoConfig是一樣的效果。
這個屬性很簡單,若為true表示對包和模塊進行異步加載,若為false則全部加載(一般true好,包和模塊用到再取,節約內存)
當HTML中有DOM元素用於構造Dijit的UI控件、或者有模塊要進行交叉引用時,需要用這個屬性配合dojo/parser模塊進行解析整個頁面。
Dojo官方推薦把這個解析關掉,默認就是false的狀態:
parseOnLoad: false
而推薦用dojo/parser模塊的parse()方法進行解析整個頁面。
有關parser解析頁面的例子待模塊加載器的這10個屬性寫完的時候,會給一個例子進行解釋,此處留伏筆。
本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。