У меня странное поведение с RequireJS, использующим синтаксис CommonJS. Я постараюсь как можно лучше объяснить контекст, над которым я работаю.
У меня есть файл JS с именем Controller.js
, который регистрирует события ввода (щелчок) и использует серию операторов if
для выполнения правильного действия. Типичный блок операторов if может быть следующим.
if(something) {
// RequireJS syntax here
} else if(other) { // ...
Чтобы реализовать синтаксис RequireJS, я попробовал два разных шаблона. Первый из них следующий. Это стандартный способ загрузки модулей.
if(something) {
require(['CompositeView'], function(CompositeView) {
// using CompositeView here...
});
} else if(other) { // ...
Вместо этого второй использует синтаксис CommonJS, например
if(something) {
var CompositeView = require('CompositeView');
// using CompositeView here...
} else if(other) { // ...
Оба шаблона работают, как и ожидалось, но я заметил странное поведение через Firebug (то же самое происходит с инструментом Chrome). В частности, при использовании второго файл CompositeView
уже загружен, даже если я не следую ветке, которая управляет конкретным действием в ответ на условие something
. Наоборот, при первом решении файл загружается по запросу.
Я что-то упускаю? Это из-за переменного подъема?