Сначала ответьте на второй вопрос:
Функция YUI()
создает песочницу.Таким образом,
var Y1 = YUI();
var Y2 = YUI();
будет двумя отдельными песочницами, а Y1
и Y2
ничего не будут знать друг о друге.Однако вы можете сделать что-то вроде этого.
Y1 = YUI();
Y1.use('calendar', function (Y) {
Y.myCalendar = new Y.Calendar().render(Y.one('body'));
});
setTimeout( function () {
Y1.use(function (Y) {
Y.myCalendar.on('dateClick', function (e) {
alert('date clicked');
});
});
}, 100);
Глобальный Y1
становится локальным Y
в каждой из use
функций.Это также иллюстрирует ответ на ваш первый вопрос.setTimeout
используется в этом примере, потому что каждая функция use
присоединяет модули и выполняет свои функции асинхронно друг с другом.Без setTimeout
вы, скорее всего, получите ошибку от второго use
, потому что он будет работать до того, как myCalendar
будет определен первым use
.
Каждый use
будет выполнять свой собственный ленивыйзагрузка модулей.Если модули уже загружены, необходимо только прикрепить их к экземпляру YUI.На практике в большинстве приложений используется только одна use
для каждой песочницы.
Конечно, в документах YUI гораздо больше информации и подробностей.