Javascript dojo版本升级问题

Javascript dojo版本升级问题,javascript,dojo,Javascript,Dojo,我们目前有dojo库版本1.4.2。 因为,dojo 1.7是可用的,我们希望进行版本升级 我只是用1.7版本的文件夹替换了库位置my js files/dojo1.4.2/*中的所有文件 大多数根文件夹结构与dijit、dojo和dojox等相同 但是,我在浏览器IE8中始终面临以下错误: “dojox.collections.Dictionary”为null或不是对象 由于以下原因: var myGlobalVariables = new dojox.collections.Dictiona

我们目前有dojo库版本1.4.2。 因为,dojo 1.7是可用的,我们希望进行版本升级

我只是用1.7版本的文件夹替换了库位置my js files/dojo1.4.2/*中的所有文件

大多数根文件夹结构与dijit、dojo和dojox等相同

但是,我在浏览器IE8中始终面临以下错误:

“dojox.collections.Dictionary”为null或不是对象

由于以下原因:

var myGlobalVariables = new dojox.collections.Dictionary();
有人面对过这个问题吗?这在dojo 1.4.2中运行良好,没有任何问题

我已确认我确实拥有以下文件: dojo_1.4.3_v1\dojox\collections\Dictionary.js

Dojo1.4和1.7之间是否存在兼容性问题?
任何指针都会有帮助。

dojox.collections 1.4的项目状态为:production,因此应该是兼容的。首先,我要检查dojo.require依赖项。@McDowell感谢您的输入。是的,添加dojo.requiredojox.collections.Dictionary确实解决了这个问题。但我在许多其他地方也犯了类似的错误。我的观点是,在使用Dojo1.4.2版本时,我不需要声明。那种感觉让我有点不舒服。此外,当前的代码库太大,无法在所有地方进行更改。还有其他建议吗?@Aysuman-这可能是1.4实现工作方式中隐藏的一个负载排序错误。如果您打算继续使用dojo.require而不是切换到新的AMD机制,我想您可以尝试创建一个脚本,在其他依赖项之前加载一组dojo.require调用。但是,您只是在代码中隐藏缺少的依赖性bug,从长远来看,这对您没有帮助。如果您对dojox软件包有依赖关系,并且这些软件包在1.4中被标记为实验版或beta版,那么您可能需要修复一些突破性的更改。如果您自己的代码库真的那么大,那么修复它的方法是错误的。相反,让猴子在你的沙箱中测试1.7,并找出哪些依赖项让你感到困惑。这些bug中的每一个都很可能有bug报告,或者很容易通过对依赖代码的轻微修改来修复。例如,隐藏的私有模块破坏了AMD模式,如果这些“私有”隐藏模块在其他文件中使用,那么在它声明的文件中使用。我发现自己创建了新的dojox/widget/_hiddenModuleName.js文件,并将其添加到各自的define dependencies中