我试图在线移动我的一些dojo 1.7代码库。我在服务器上启用了CORS,本地/在线文件加载了dojo.require
。
虽然这适用于本地文件,但http文件无法以递归顺序加载。例如,
dojo.registermodulepath("my.path", "http://my.path");
dojo.require(my.path.module1);
dojo.require(my.path.module2);
现在,假设加载module1
文件并且具有自己的子依赖项,dojo.require
应该首先加载这些子依赖项;但我观察到,对于在线文件,它会直接加载module2
并中断订单。
因此,该应用程序无法正常运行。怎么样?
答案 0 :(得分:0)
一般来说,依赖于同一水平" (例如,同一模块中的两个dojo.require
次呼叫)预计不会依赖于顺序。如果module2
确实依赖于module1
已加载,则module2
本身应包含对require
的{{1}}调用,这将准确表达递归依赖关系。< / p>
我建议不要假设module1
同步操作 - 在此假设下运行将打破您尝试进行跨域构建的时刻,或更新以使用{{1}的正确AMD模式中的加载器}。
同时,如果通过&#34; local&#34;您的意思是文件系统访问,建议高度使用实际的Web服务器来运行Web应用程序。浏览器通常对file:// URL进行更严格的操作,例如阻止XHR。
答案 1 :(得分:-1)
你可以设置
<script>
dojoConfig= {
async: false
};
</script>
或者在AMD风格中,您只能在module1加载后加载module2