Jquery 间歇性加载导致未定义错误

Jquery loading intermittently causing not defined error

我们有一个 JavaScript 应用程序,它使用 jQuery 并具有以下加载库的块。这在大多数情况下都可以正常工作,但在随机时间 jquery-1.11.2.min 库似乎没有及时加载 jquery-ui.min 库,所以我得到一个 ReferenceError 说 jQuery 没有在 jquery-ui.min 库中定义。 据我所知,库应该按顺序加载,所以我不确定为什么会这样,所以任何想法都会很棒:

<script type="text/javascript">
    var dojoConfig = {
        async: true,
        paths: {
            "libs": location.pathname.replace(/\/[^/]+$/, '') + "/js/lib",
            "actions": location.pathname.replace(/\/[^/]+$/, '') + "/js/actions"
        },
        packages: [
            { name: "jquery", location: "//code.jquery.com", main: "jquery-1.11.2.min" },
            { name: "jqueryui", location: "//code.jquery.com/ui/1.10.3", main: "jquery-ui.min" },
            { name: "moment", location: location.pathname.replace(/\/[^/]+$/, '') + "/js/lib/moment", main: "moment" }
        ]
    };
</script>

你的问题是 async:true 属性

jqueryui 与 jquery 有依赖关系,因此你 必须 加载 jquery 然后 jqueryui 当它异步时它可以加载 jqueryui 然后 jquery,这将抛出错误

edit1 如果您想继续使用 async:true 属性 然后尝试使用 deps 属性

from site: deps: Dojo 加载后应立即加载的资源路径数组: 部门:["dojo/parser"]

deps (模块标识符字符串数组)/回调(函数) 这些配置变量仅在加载程序加载之前适用。提供时,它们会导致加载程序在完成加载后执行 require(deps, callback)。