Javascript config.js的requirejs加载超时(优化)

Javascript config.js的requirejs加载超时(优化),javascript,backbone.js,requirejs,marionette,amd,Javascript,Backbone.js,Requirejs,Marionette,Amd,我有一个优化的config.js(大约420kB),它是由requirejs加载的,每次新用户在这个文件中注册和登录时都会被提取并放入缓存,但是用户第一次提取这个文件时总是会出现一个未捕获的错误:模块的加载超时:config,然后用户必须刷新并加载 我以为这是超时问题,所以更改了waitSeconds:200。这发生在RequireJS2.1.6中,所以我升级到了最新的2.1.9版本,仍然是同一版本 但是如果我不使用优化器,使用未优化的配置文件(3KB),它可以加载大约35-40个小js文件(缩

我有一个优化的config.js(大约420kB),它是由requirejs加载的,每次新用户在这个文件中注册和登录时都会被提取并放入缓存,但是用户第一次提取这个文件时总是会出现一个
未捕获的错误:模块的加载超时:config
,然后用户必须刷新并加载

我以为这是超时问题,所以更改了
waitSeconds:200
。这发生在RequireJS2.1.6中,所以我升级到了最新的2.1.9版本,仍然是同一版本

但是如果我不使用优化器,使用未优化的配置文件(3KB),它可以加载大约35-40个小js文件(缩小),一切都会好起来的!但是我希望所有的文件都在优化的
config.js
中,因为http请求较少(对移动设备很好)

添加代码:

require.config({

    paths : {
        jquery        : './vendor/libs/jquery-1.10.1.min',
        underscore    : './vendor/libs/underscore-min',
        backbone      : './vendor/libs/backbone-min',
        marionette    : './vendor/libs/backbone.marionette',
        wreqr         : './vendor/plugins/backbone.wreqr.min',
        text          : './vendor/plugins/text',
        tpl           : './vendor/plugins/tpl',
        socketio      : '../socket.io/socket.io.min',
        spin          : './vendor/plugins/spin.min',
        shuffle       : './vendor/plugins/jquery.shuffleLetters',
        magicSuggest  : './vendor/plugins/magicsuggest-1.3.0-min',
        mCustomScroll : './vendor/plugins/jquery.mCustomScrollbar.concat.min',
        imagesloaded  : './vendor/plugins/imagesloaded',
        qTip          : './vendor/plugins/jquery.qtip.min',
        visibility    : './vendor/plugins/visibility',
        tab           : './vendor/plugins/tab',
        dropdown      : './vendor/plugins/dropdown',
        interestsMap  : './interestsMap',
        moment        : './vendor/plugins/moment.min',
        favicon       : './vendor/plugins/tinycon'

    },

    waitSeconds       : 180,

    shim : {

        socketio : {
            exports : 'io'
        },

        underscore : {
            exports : '_'
        },

        backbone : {
            deps : ['underscore','jquery'],
            exports : 'Backbone'
        },

        marionette : {
            deps : ['backbone'],
            exports : 'Backbone.Marionette'
        },

        wreqr      : {
            deps : ['backbone'],
            exports : 'Backbone.Wreqr'
        },

        shuffle : {
            deps : ['jquery'],
            exports : 'jQuery.fn.shuffleLetters'
        },

        magicSuggest : {
            deps : ['jquery'],
            exports : 'jQuery.fn.magicSuggest'
        },

        mCustomScroll : {
            deps : ['jquery'],
            exports : 'jQuery.fn.mCustomScrollbar'
        },

        visibility : {
            exports : 'Visibility'
        },

        tab        : {
            deps : ['jquery'],
            exports : 'jQuery.fn.tab'
        },

        dropdown   : {
            deps : ['jquery'],
            exports : 'jQuery.fn.dropdown'
        },

        moment     : {
            exports : 'moment'
        },

        favicon    : {
            exports : 'Tinycon'
        }

    },

    tpl     : {
        extension : '.tpl'
    }
});

//Initialise 
require([
        'backbone',
        'routers/index',
        'app',
        ],function  (Backbone ,Router ,app){
            //var presence  = io.connect(w.protocol+'//'+w.host+'/presence');

            app.start();

            Backbone.history.start();


});
**任何模块中都没有错误,因为未优化的config.js文件可以正常加载

构建配置

({
    appDir : '../',
    baseUrl: './scripts',
    dir    : '../../dist',
    mainConfigFile : '../scripts/config.js',
    name: "config",
    optimizeCss : 'standard'
})

为了防止出现问题,可以使用require js config属性waitSeconds(设置为0)禁用require js timeout。默认超时为7秒(请参阅更多)


但是您应该看看r.js(),因为使用它您可以将所有js源文件合并到一个更大的app.js文件中,其中包含所有依赖项。要使用它,您应该删除dir属性并在配置文件中添加out属性。

是否可以添加一些代码?更新为代码:)。现在我正在做这个:requirejs.onError=函数(检查错误类型是否为timeout,如果是,则重新加载()页)。这是可行的,但是你的构建配置不好?你有没有找到解决方案?我也遇到了同样的问题。嗯,所以你的主脚本名为config,配置也名为config,加上你没有提到这个文件。如何尝试重命名生成文件中的模块:
({appDir:'../',baseUrl:'./scripts',dir:'../../dist',mainConfigFile:'../scripts/config.js',name:“main”,out:'main build.js'optimizeCss:'standard'})