Обычно вы загружаете приложение Backbone с использованием require.js во время загрузки страницы
<script data-main="js/main" src="js/libs/require/require.js"></script>
, которое загружает некоторые зависимости и запускает приложение.
Если ваше приложение требует манипулирования DOM, вы можете использовать плагин domReady
require(['domReady','app' ], function (domReady, App) {
domReady(function (App) {
App.Initialize()
}):
});
Но мое приложение взаимодействует с Flash API.Мне нужно подождать, пока флэш-плагин не загрузит свой собственный XML.Я сделаю обратный вызов обратно в JavaScript, когда это будет сделано.Этот обратный вызов должен запускать app.initialize () с зависимостями, как в require.js
Первый и второй методы (ожидающие dom) еще не гарантируют, что flash api доступен.Итак, как я могу инициализировать приложение, чтобы app.js имел свои зависимости и был доступен flash api.Или сформулированы по-другому: Как я могу инициализировать require.js через событие / обратный вызов javascript
Обновление: Очевидно, этого будет достаточно:
<script data-main="js/main" src="js/libs/require/require.js"></script>
<script type="text/javascript">
function init(){
require(['framework/app'], function(App){
App.initialize();
});
}
</script>
Плагин Flash можетпросто вызовите window.init (), чтобы запустить приложение.Недостатком может быть то, что jQuery загружается при инициализации приложения.Это может привести к небольшой задержке перед тем, как что-либо отобразится.
Мне интересно, если при загрузке jquery в начало / конец тела, require.js перезагрузит / создаст другую копию jquery или прочитает из кеша /дом