requirejs 加载超时用于配置.js(优化)
requirejs Load timeout for config.js (optimized)
我有一个优化的配置.js(大约 420kB),它由 requirejs 加载,每次新用户在此文件中注册和记录时都会被获取并放入缓存中,但用户第一次获取此内容时总是有一个Uncaught Error: Load timeout for modules: config
,然后用户必须刷新然后加载。
我认为这是一个超时问题,所以更改了waitSeconds : 200
.这发生在requireJs 2.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'
})
为了防止出现问题,您可以使用"需要 js 配置"属性 waitSeconds(设置为 0)禁用"需要 js 超时"。默认超时为 7 秒(请参阅更多 http://requirejs.org/docs/api.html#config-waitSeconds)。
但是你应该看看 r.js (http://requirejs.org/docs/optimization.html#wholeproject),因为有了它,您可以将所有 js 源文件合并到一个更大的 app.js 文件中,其中包含所有依赖项。要使用它,您应该删除 dir 属性并在配置文件中添加 out 属性。
相关文章:
- 使用优化器在慢速连接上加载main.js时需要js超时
- 使用公共JS文档优化静态网站的CSS/JS导入
- 棱角分明.js和搜索引擎优化
- 在运行时使用require-js切换出优化的代码
- Require.js+R.js优化器忽略Shim
- 缓存破坏由Require.js优化的网站
- Node.js-检测图像优化
- 通过异步加载自动列出require.js依赖项以进行r.js优化
- 如何指定哪些Require.js模块是用优化器压缩的,哪些不是
- Require.js构建优化配置
- 优化静态场景的Three.JS渲染时间
- 压缩脚本和样式,并将所有js和样式引用合并为单个引用,以优化网站性能
- 使用 Esprima for File 解析错误,同时使用 R.js 优化 JS 文件
- 有哪些方法可以优化js上的脚本
- 为IE8优化JS-String.replace和String.match
- 优化js -保存对象中复选框的值
- 有没有优化JS/CSS文件的浏览器插件?
- 如何优化JS代码
- 优化JS查询
- 如何优化js代码