gpt4 book ai didi

Dojo 构建 -> dojo.require();还需要吗?

转载 作者:行者123 更新时间:2023-12-01 01:36:52 24 4
gpt4 key购买 nike

这是我的第一个道场构建,所以请原谅我对这件事的无知。

我刚刚使用以下(非常简化的)配置文件从 dojo 构建系统创建了我的自定义构建:

dependencies = {
stripConsole: "normal",

layers: [
{
name: "../dijits/cx/dijitsCXbuild.js",
copyrightFile: "CopyrightCX.txt",
dependencies: [
"dojo.parser",
"dijit.dijit",
"dijit._Widget",
"dijit._Templated",
"dijit._Container",
"dojo.i18n",
"dojo.NodeList-fx",
"dojox.grid.cells",
"dojox.grid.DataGrid",
"dojox.layout.GridContainer",
"dijit.TitlePane",
"dijits.cx.TaskPanel",
"dijits.cx.Identify"
]
}
],

prefixes: [
[ "dijit", "../dijit" ],
[ "dojox", "../dojox" ],
[ "dijits.cx", "../dijits/cx" ]
]

}

......好吧,一切都很好,我得到了我自己的包裹,里面有我所要求的一切。然后在我的网络应用程序中,我包含以下内容

<script type="text/javascript">
djConfig = {
isDebug:false,
parseOnLoad:true,
locale:getLocale()
};
</script>

<script type="text/javascript" src="Lib/cxdojo/dojo/dojo.js"></script>
<script type="text/javascript" src="Lib/cxdojo/dijits/cx/dijitsCXbuild.js"></script>

...看起来不错,直到代码需要实例化第一个 dijit 并且它因臭名昭著而失败:“dijits.cx。TaskPanel 不是构造函数。”

我可以通过包含“dojo.require()”来摆脱这个问题,但我会通过创建我自己的自定义构建来摆脱这个问题。关于我做错了什么或我应该做什么以避免'dojo.require()'行的任何想法......
多谢了。

最佳答案

您仍然需要 dojo.require在你的文件中。压缩构建只是阻止 dojo.require通过将所有文件连接到一个文件并缩小它来对所需文件执行 GET 请求。这节省了相当多的页面加载周期(我相信你现在已经看到了)。

如果你真的想摆脱许多dojo.require (我不太喜欢,因为我喜欢看到页面中使用的内容),您可以执行以下操作:

dojo.provide('my.main');
dojo.require('dijit.cx.TaskPane');
... all the other dojo.require statements ...

然后将其放入与 dojo 平行的目录中的文件中:
  Lib/cxdojo/my/main.js
Lib/cxdojo/dojo/dojo.js
.. etc ...

然后将您的依赖项更改为:
           dependencies: [
"my.main"
]

然后在您的文件中,您可以将其包含在脚本标记中:
 <script type="text/javascript" src="Lib/cxdojo/my/main.js"></script>

然后,您只需要一个要求:
  dojo.require('my.main');

这种方法的另一个优点是,当您向应用程序添加模块时,您只需要更改一个文件(/my/main.js)。

关于Dojo 构建 -> dojo.require();还需要吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1400194/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com