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

时间:2016-03-08 14:08:17

标签: javascript jquery dojo loading

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

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

1 个答案:

答案 0 :(得分:1)

您的问题在于async:true属性

jqueryui依赖于jquery因为你必须加载jquery然后jqueryui当它是异步时它可以加载jqueryui然后jquery,这会抛出错误

<强> EDIT1 如果您希望继续使用async:true属性,请尝试使用deps属性

来自网站的

deps:一旦加载Dojo后应立即加载的资源路径数组:     deps:[“dojo / parser”]

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