【发布时间】:2012-01-05 12:04:54
【问题描述】:
通常您在页面加载期间使用 require.js 在 Backbone 应用程序中加载
<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 发起回调。此回调需要使用 require.js 中的依赖项触发 app.initialize()
第一种方法和第二种方法(等待 dom)并不能确保 flash api 可用。那么如何初始化应用程序,以便 app.js 具有其依赖项并且 flash api 可用。或以不同的方式表述:如何通过 javascript 事件/回调初始化 require.js
更新: 显然,这就足够了:
<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 中读取
【问题讨论】:
标签: javascript backbone.js requirejs