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

【Dojo 1.x】笔记7 配置对象dojoConfig的内容1:has属性、加载器的属性的更多相关文章

  1. 【Dojo 1.x】笔记6 配置对象dojoConfig的用处和真身所在

    dojoConfig是对整个Dojo开发环境的配置,它的位置必须是页面的最前,可以是script标签也可以是独立的js文件. 它允许开发者为Dojo SDK的各个方面设置选项和默认行为. 但是,这个对 ...

  2. AMD加载器实现笔记(二)

    AMD加载器实现笔记(一)中,我们实现了一个简易的模块加载器.但到目前为止这个加载器还并不能称为AMD加载器,原因很简单,我们还不支持AMD规范中的config配置.这篇文章中我们来添加对config ...

  3. AngularJs2与AMD加载器(dojo requirejs)集成

    现在是西太平洋时间凌晨,这个问题我鼓捣了一天,都没时间学英语了,英语太差,相信第二天我也看不懂了,直接看结果就行. 核心原理就是require在AngularJs2编译过程中是关键字,而在浏览器里面运 ...

  4. AMD加载器实现笔记(四)

    继续这一系列的内容,到目前为止除了AMD规范中config的map.config参数外,我们已经全部支持其他属性了.这一篇文章中,我们来为增加对map的支持.同样问题,想要增加map的支持首先要知道m ...

  5. AMD加载器实现笔记(三)

    上一篇文章中我们为config添加了baseUrl和packages的支持,那么这篇文章中将会看到对shim与paths的支持. 要添加shim与paths,第一要务当然是了解他们的语义与用法.先来看 ...

  6. AMD加载器实现笔记(一)

    之前研究过AMD,也写过一篇关于AMD的文章<以代码爱好者角度来看AMD与CMD>.代码我是有看过的,基本的原理也都明白,但实际动手去实现却是没有的.因为今年计划的dojo教程<静静 ...

  7. JVM笔记11-类加载器和OSGI

    一.JVM 类加载器: 一个类在使用前,如何通过类调用静态字段,静态方法,或者new一个实例对象,第一步就是需要类加载,然后是连接和初始化,最后才能使用. 类从被加载到虚拟机内存中开始,到卸载出内存为 ...

  8. vue-loader 调用了cssLoaders方法配置了css加载器属性。

    module: { loaders: [ // 这里也是相应的配置,test就是匹配文件,loader是加载器, { test: /\.vue$/, loader: 'vue' }, { test: ...

  9. 【SpringBoot 基础系列】实现一个自定义配置加载器(应用篇)

    [SpringBoot 基础系列]实现一个自定义配置加载器(应用篇) Spring 中提供了@Value注解,用来绑定配置,可以实现从配置文件中,读取对应的配置并赋值给成员变量:某些时候,我们的配置可 ...

随机推荐

  1. Oracle数据库备份及还原

    Oracle数据库备份 1:找到Oracle安装路径我的就是默认C盘  C:\app\wdjqc\admin\orcl\adump 2:执行文件:back.bat 文件内容如下: @echo off ...

  2. Python内置函数(4)——ascii

    英文文档: ascii(object) As repr(), return a string containing a printable representation of an object, b ...

  3. Jquery.ajax dataType参数

    dataType 类型:String 预期服务器返回的数据类型.如果不指定,jQuery 将自动根据 HTTP 包 MIME 信息来智能判断,比如 XML MIME 类型就被识别为 XML.在 1.4 ...

  4. qt 布局

    说到qt布局,比起之前用的MFC好了许多,而且qt支持qss,可以更好的美化界面.qt提供了几种常见的布局管理 窗体布局,这对客户端程序来说是一个福音,再也不用操心程序界面放大缩小时界面控件怎么变化, ...

  5. C++版 - 剑指offer之面试题37:两个链表的第一个公共结点[LeetCode 160] 解题报告

    剑指offer之面试题37 两个链表的第一个公共结点 提交网址: http://www.nowcoder.com/practice/6ab1d9a29e88450685099d45c9e31e46?t ...

  6. Eclipse导入别人的项目报错:Unable to load annotation processor factory 'xxxxx.jar' for project

    使用eclipse导入别人的项目时候,报错Unable to load annotation processor factory 'xxxxx.jar' for project. 解决方案 1.项目右 ...

  7. Java开发知识之XML文档使用,解析

    目录 XML文件详解 一丶XML简介 1.文档结构 2.XML中的元素(Element)或者叫做标签(Tab).属性 文本内容. 节点(Node) 3.XML语法规则 二丶XML文档解析 三丶使用XP ...

  8. linux下sh脚本/bin/bash^M问题解决

    如果是在windows下编辑的脚本,到了linux下运行时会报出这样的错误/bin/bash^M:bad interpreter: No such file or directory这时因为编码的问题 ...

  9. 深入浅出ASP.NET Core系列(入门篇)

    入门篇 1.1.专题介绍 1.2.环境安装 1.3.创建项目 1.4部署到IIS 1.5准备CentOS和Nginx环境 1.6部署到CentOS 2.1命令行和JSON的配置 2.2Bind建立配置 ...

  10. [四] java虚拟机JVM编译器编译代码简介 字节码指令实例 代码到底编译成了什么形式

      前言简介   前文已经对虚拟机进行过了简单的介绍,并且也对class文件结构,以及字节码指令进行了详尽的说明 想要了解JVM的运行机制,以及如何优化你的代码,你还需要了解一下,java编译器到底是 ...