什么是道场AMD加载顺序
what is the dojo AMD loading sequence?
我试着寻找dojo AMD加载它的模块的顺序,正如我在其他问题中看到的,模块放置在require[]块中的顺序。
require(["dojo/dom",
"dijit/Dialog",
"dijit/form/Form",
"dijit/form/TextBox",
"dijit/form/ValidationTextBox",
"dijit/form/Textarea",
"dijit/form/Button",
"dojox/validate/web",
"dojo/request",
"dojo/domReady!"],
是require块的一个例子…
嗯…没有真正的加载顺序(这是AMD中的异步)。dojo/domReady!
模块也不是最后加载的,是模块本身延迟了AMD回调的执行。
有人把dojo/domReady!
放在最后的唯一原因是因为返回的对象没有用处。然而,不管使用与否,如果您需要一个特定的模块放在后面,那么您仍然需要添加一个额外的参数,例如:
require(["dojo/dom", "dojo/domReady!", "dojo/aspect"], function(dom, garbage, aspect) {
});
上面的代码工作,并将保持工作,即使你打乱模块的顺序,这里唯一的问题是,因为我们想要aspect
模块,我们需要为domReady模块添加第二个参数。
require(["dojo/dom", "dojo/aspect", "dojo/domReady!"], function(dom, aspect, garbage) {
});
因为JavaScript中的参数是可选的,我们可以把不需要的参数留下(如果它们在最后),所以上面的代码与:
require(["dojo/dom", "dojo/aspect", "dojo/domReady!"], function(dom, aspect) {
});
这就是为什么它经常作为最后一个参数添加的原因。虽然也有其他模块通常放在末尾,例如:
- 所有
dojo/NodeList-*
模块:这些模块为NodeList
模块添加了额外的功能。然而,它们是直接应用的,这些模块的返回对象是无用的。 -
dojo/parser
:当您将Dojo配置为自动解析所有HTML时(使用parseOnLoad
),那么您不一定需要对解析器模块的引用。但是,您必须添加它才能使其工作。 - 所有小部件:如果您使用声明式标记,则不需要模块本身的实例,但是必须加载它才能使其工作。
相关文章:
- phoneGap/Cordova插件加载顺序/交易w/AdBlock
- InnerHTML创建问题,没有't加载顺序正确,可能存在处理问题
- 任何控制Javascript异步加载顺序的方法
- 可以在Rails4中更改JavaScript文件的加载顺序吗
- Knockout.JS加载顺序问题
- 我应该如何在JS中使用揭示模块模式,传递引用,并避免加载顺序问题
- 使用Sencha's app.json来管理Javascript加载顺序和依赖关系
- Javascript src加载顺序
- Rails 指定 JavaScript 文件的加载顺序
- 需要JS脚本加载顺序
- 除了JS,其他语言是否按加载顺序执行代码
- Coldfusion - CFIDE 脚本的加载顺序
- j查询图像预加载顺序
- 视图中的 JavaScript 错误 - 加载顺序
- 子模板JS资产加载顺序在播放中!框架
- JS加载顺序 - 滚动JS禁用,回调解决方案,或者更简单
- 页面加载顺序有问题 - 样式不适用
- 角度 - 脚本加载顺序
- HTML 在 Internet Explorer 中导入加载顺序
- 角度指令加载顺序