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

标签 javascript jquery dojo loading

我们有一个使用 jQuery 的 JavaScript 应用程序,并具有以下加载库的 block 。这在大多数情况下都可以正常工作,但在随机时间,jquery-1.11.2.min lib 似乎没有及时加载 jquery-ui.min lib,因此我收到一个 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,这将引发错误

编辑1 如果您希望继续使用 async:true 属性,请尝试使用 deps属性

来自站点: deps:加载 Dojo 后应立即加载的资源路径数组: deps: ["dojo/parser"]

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

关于javascript - Jquery 加载间歇性导致未定义错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35869584/

相关文章:

javascript - Angularjs/ ionic 类型错误 : Cannot read property 'then' of undefined

javascript - react -Redux : Passing arguments from handler to action creator

javascript - PLUpload 获取剩余文件?

jquery - 如何以 jquery 风格做到这一点

javascript - Dojo:BorderContainer 如何更改拆分器的宽度/高度?

javascript - 显示多层,ArcGIS javascript api

javascript - 添加ajax成功返回html形式的json对象数据

javascript - 当浏览器窗口的高度较小时,阻止固定元素滚动到页脚

javascript - 道场:如何克隆小部件?

javascript - iframe 高度更改并覆盖相对 div