Обычно вы загружаете приложение 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. Мне нужно подождать, пока плагин flash загрузит собственный 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 или читает из кеша / dom