/ / Requjs Време за изчакване на зареждане за config.js (оптимизирано) - javascript, backbone.js, requjs, marionette, amd

requirejs Време за изчакване за зареждане за config.js (оптимизиран) - javascript, backbone.js, requirejs, marionette, amd

Имам оптимизирана конфигурация.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 във вашия конфигурационен файл.