Dojo build – > dojo.require();还需要吗?

这是我的第一个道场建设,所以请原谅我对此事的无知.

我刚刚使用以下(非常简化的)配置文件从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" ]
]

}

……好吧,一切都很好,我得到了我要求的一切包.然后在我的webapp中,我包括以下内容

<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).

相关文章

参考博客:https://blog.csdn.net/blog_szhao/article/details/50220181           https://doj...
我有一个包含多个字段的Dojo DataGrid.我目前正在设置查询一次搜索一个字段,如下所示: grid.setQuery(...
我正在使用JsonRestStore,但想为它添加一个自定义Accept标头.最好的方法是什么? 这与dijit.layout.Con...
我需要选择一个给定其URL的链接节点.使用属性选择器的效果非常好,除了少数几个url有tilda的情况.我无法...
我正在尝试使用Dojo JSONREST的增强网格,我遇到了一些问题. 我一直在寻找一些例子,但无法弄清楚如何做我...
如何根据一些运行时参数隐藏dgrid(gridFrom Html)中的完整列? 让我们说如果参数的值为true我应该能够显...