【Dojo 1.x】筆記7 配置對象dojoConfig的內容1:has屬性、加載器的屬性


說完了出身,即出身自dojo/_base/目錄下的config模塊,那就要好好講講這對象有什么可以寫的屬性了。

1. has屬性

官方說是用於更好的特征檢測的,具體有什么用現在還不得知。

例如:

<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環境特性而生的吧。

2. ▲模塊加載器相關屬性:[baseUrl、packages、map、paths、async、parseOnLoad、deps、callback、waitSeconds、cacheBust]

模塊加載器在dojo 1.7支持AMD后進行了重寫,所以為了更方便加載異步js模塊,模塊加載器就要進行手工配置了。

模塊加載器在后台工作,我們只需要了解dojoConfig中所需要配置的10個屬性,本篇介紹幾個比較重要的,下篇介紹剩余的。

2.1 baseUrl

基礎目錄。即指明所有的模塊及模塊的相對目錄所在的目錄,繞口是有點繞口。

打個比方,世界上有很多個兒子,但是你兒子不是我兒子,說兒子的時候必須說是誰家的。這個兒子,就是模塊,孫子也是模塊,那么當我指明了是哪個家族(基礎目錄)的時候,這些兒子孫子就能精確的找到是誰了。

看圖:

代碼即為:

baseUrl: '../js/modules/' 

2.2 packages

一個包名(包是文件夾)和包的位置(文件夾的位置)鍵值對的對象數組。

舉例如下:

因為在上方指明了baseUrl,所以packages的第一個對象(包和路徑鍵值對)中的路徑屬性location可以是空,當然,如果包還要繼續鑽下去,location就要指定一下了。

在packages中聲明的包,其內必須有main.js入口文件。聲明后,例如圖上的myModule包,就可以在全局入口require函數中調用了,無需再寫路徑。

這個包的效果就是把節點名稱是"greeting"的HTML元素的內容換為字符串'HHHHHH'。

ps:我感覺理解還不是很深刻,日后繼續更新此處。

2.3 paths

把packages屬性中的對象進行拆分,packages變為包名的字符串數組(原來的name子屬性),而paths屬性則把原來的location子屬性記錄下來。

見下:

上下兩個dojoConfig是一樣的效果。

2.4 async

這個屬性很簡單,若為true表示對包和模塊進行異步加載,若為false則全部加載(一般true好,包和模塊用到再取,節約內存)

2.5 parseOnLoad

當HTML中有DOM元素用於構造Dijit的UI控件、或者有模塊要進行交叉引用時,需要用這個屬性配合dojo/parser模塊進行解析整個頁面。

Dojo官方推薦把這個解析關掉,默認就是false的狀態:

parseOnLoad: false

而推薦用dojo/parser模塊的parse()方法進行解析整個頁面。

有關parser解析頁面的例子待模塊加載器的這10個屬性寫完的時候,會給一個例子進行解釋,此處留伏筆。


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com