Имам оптимизирана конфигурация.js (около 420kB), това се зарежда от Requjs и всеки път, когато нов потребител регистрира и регистрира в този файл, се извлича и поставя в кеша, но първият път, когато потребителят извлече това, винаги има Uncaught Error: Load timeout for modules: config
и след това потребителят трябва да се опресни и след това се зарежда.
Помислих, че това е въпрос за изчакване, така променен waitSeconds : 200
, Това се случи в RequJs 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"
})
Отговори:
0 за отговор № 1За да предотвратите проблема си, можете да деактивирате изчакване на js изисква js с изискването на свойства js конфигурация waitSeconds (зададено на 0). Времето за изчакване по подразбиране е 7 секунди (вижте повече http://requirejs.org/docs/api.html#config-waitSeconds).
Но трябва да погледнете r.js (http://requirejs.org/docs/optimization.html#wholeproject), защото с това можете да обедините всичките си js изходни файлове в един по-голям файл app.js с всички зависимости. За да го използвате, трябва да премахнете свойството dir и да добавите свойството out във вашия конфигурационен файл.