说完了出身,即出身自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个属性写完的时候,会给一个例子进行解释,此处留伏笔。

最新文章

  1. net面试 ASP.NET页面传值的各种方法和分析 (copy)
  2. 045医疗项目-模块四:采购单模块—采购单提交(Dao,Service,Action三层)
  3. OPENGL的入门第一个程序——Hello World
  4. youphp学习整理
  5. DataGridView 去掉多余的列
  6. .NET Core跨平台:.NET Core项目部署到linux(Centos7)
  7. Python之find命令中的位置的算法
  8. springboot整合视图层之Thymeleaf
  9. Linux安装Redis和Redis基本操作命令
  10. js 通过id或class获得的对象说明
  11. webkit内核自定义隐藏滚动条
  12. 全局监听SCREEN_ON和SCREEN_OFF的替代方法--监听屏幕解锁事件
  13. &#39;curl&#39; is not recognized as an internal or external command
  14. Java中的String和StringBuffer
  15. Vuex-Mutation
  16. BZOJ 1975: [Sdoi2010]魔法猪学院——K短路,A*
  17. Intel 5 6 7 8系列芯片组介绍
  18. container,algorith,iterate
  19. 数组模拟单向链表例题(UVa11988)
  20. Google安装postman插件

热门文章

  1. ArrayList源码理解
  2. div里包含img底部多出3px的解决办法
  3. Hash及HashMap简介
  4. 音视频编解码技术(二):AAC 音频编码技术
  5. [Swift]LeetCode448. 找到所有数组中消失的数字 | Find All Numbers Disappeared in an Array
  6. [Swift]LeetCode909. 蛇梯棋 | Snakes and Ladders
  7. Underscore.js 源码学习笔记(下)
  8. C#版 - Leetcode 593. 有效的正方形 - 题解
  9. linux centos 安装Jenkins(非docker方式)
  10. leetcode — subsets