我目前正在制作一个Web应用程序,只打开一个实例。这是通过在应用程序加载时设置/检查的cookie来完成的,并在关闭应用程序时将其删除。我设置cookie的逻辑我已经解决了,但是我遇到了触发它的问题。
我的网络应用程序是使用require.js和backbone.js构建的。在我的main.js文件中,我将对单个实例逻辑的调用绑定到load
和unload
事件,如下所示。
requirejs(['jquery', 'router', 'singleInstance'], function ($, Router, SingleInstance) {
//TODO fix load event is not triggering...
$(window).bind('load', function () {
SingleInstance.setSingleInstance();
});
$(window).bind('unload', function () {
SingleInstance.removeSingleInstace();
});
通过设置对setSingleInstance()
和removeSingleInstance()
的调用的断点,我发现removeSingleInstance()
会被调用,就像卸载事件一样,但是setSingleInstance()
不是被叫。如何将此调用绑定到load
事件?
答案 0 :(得分:1)
问题是,当你绑定监听器时,窗口已经加载,因此不会触发回调函数。如果它没有副作用,请立即在requirejs回调中调用SingleInstance.setSingleInstance();
。
我想使用窗口加载事件的风格原因来匹配卸载
好吧,它阻止了你的代码工作。