仅在页面未加载时才加载requirejs库

时间:2015-11-16 10:26:45

标签: javascript requirejs require

我是使用requirejs(2.1.19)的新手。目前我正在使用它开发一个应用程序。 我的问题是,如果某个用户的页面上已经有requirejs(< 2.1.19),会发生什么。 这意味着正在加载两个版本的requirejs,这将导致冲突。 如何处理这个问题。这样我的应用程序就会覆盖用户使用的requirejs。

如果用户已经有requirejs我想要。它使用js,否则它使用我服务的requirejs 有没有办法这样做????

1 个答案:

答案 0 :(得分:2)

您可以检查是否已定义某些全局 RequireJS 功能。例如:

if(typeof define == "undefined") {
    // RequireJS isn't present...
}
// or...
if(typeof require == "undefined") {
    // RequireJS isn't present...
}

为了有条件地加载库,您需要一个独立的JavaScript加载器。 One of simplest file loaders is HeadJS

if(typeof define == "undefined") {
     head.load("yourOwnRequire.js", function() {
         // RequireJS will be loaded asynchronously
     });
}

请注意,异步加载库有一些含义。文档加载后,某些库可能无法使用,您需要仔细考虑如何初始化Web应用程序。

另一方面,如果您想同步加载 RequireJS ,请查看此问答以查看如何使用JavaScript手动添加脚本标记: