requirejs在加载依赖项之前触发回调 - 有时候

时间:2015-11-24 23:42:51

标签: javascript requirejs

我有一个不能一致加载的requirejs应用程序。通常它只要我在缓存的内容集上工作,但这并不是一个大惊喜。但是,清除缓存几乎总是导致脚本不存在。

我没有在我的应用程序之外包含依赖项 - 所有内容都包含在define()依赖注入中。

我的main.js文件包含以下内容,它是使用data-main每个requirejs标准启动的:

define(
    ["vendor/preloadjs", "router"],
    function (createjs, router) {
        //At this point all controllers are loaded and ready to go
        console.log("main controller"); //This successfully fires every time
        return {};
    }
);

我的主控制器包含以下内容:

define(
    ["vendor/crossroads", "vendor/hasher"],
    function(xr, h) {
        console.log(xr, h);
        return {};
    }
);

问题在于router.js:

{
    noConflict: ()
    parse: parse()
    runInContext: a(b, d)
    stringify: stringify()
    __proto__: Object
}

此文件中的日志通常输出十字路口的正确对象(在本例中为xr),有时将输出正确的对象(h)。然而,在没有缓存内容的情况下刷新时,10个中的3或4次(使用缓存刷新时)和10次中的10次中断10次。它并没有始终如一地突破。有时十字路口将是未定义的,有时候将会是以下对象:

{{1}}

有时,signals.js(为主要js文件中的路径配置中定义的hasher和crossroads定义的依赖关系)无法加载,我得到其他错误,例如a.Signal未定义。

我在这里看到的是我的回调在我的依赖项加载之前被触发。所有这三个依赖项都是amd / require启用的,并且它们在某些时间工作。 require.js的全部要点是在加载依赖关系树之前不要触发回调吗?我错过了什么?

感谢!!!

0 个答案:

没有答案