我的公司正在从经典的Dojo语法转向AMD。我们有几种情况需要同步动态加载模块。Dojo需要单参数同步吗?
在dojo中的要求似乎并没有正式支持同步加载(至少它没有记录在任何地方),但它似乎工作,如果你没有传递一个函数作为第二个参数(至少在1.7.2 )。
require(["path/to/my/Module"]);
我在Fiddler中添加了额外的延迟,它在移到下一行之前肯定会加载。
有谁知道这是否安全依靠?如果它只是从2.0版本中退出的经典风格的宿醉,我并不是特别想要抛弃代码库。
从看AMD API我认为这可能是Dojo的一部分的错误。我使用的语法不 要求(串) 或 要求(阵列,功能) 它 要求(阵列) 模块绝对尚未加载但因为我在一个单位调用它测试我预先不需要的地方。它正在同步加载,因为我使用fiddler将呼叫延迟增加了2000ms,并等待它加载。 –
我试图复制这个,但一直没能做到(同时使用v1.9和v.1.7.2)。我已经使用了数组格式(没有回调),但它仍然是异步加载的。也许你正在使用不同的设置?我有{cacheBust:true,async:true} - 尝试过使用本地Dojo并使用Google CDN。即使它同步工作,我也会认为这将在未来和随机时间切换到异步 - 即。它可能在装载机上使用了一个未知的缺陷。我不是Dojo加载器的专家,所以我不能肯定地说这是否是正确的行为。 –