这些问题中的大多数都没有非常全面的答案。
在我的应用程序中,我决定调用当前加载的任何 Controller ,如 $app.ctrl
现在,当我将 $app.ctrl
设置为 null 时, Controller 创建的任何事件会怎样?
例如,我的应用可能会像这样加载一个 Controller :
loadController : function(controller){
$app.ctrl = null;
var s = document.createElement('script');
s.setAttribute('src', $app.ctrl_path+controller);
s.className = 'ctrl';
s.onload= function(){
$app.ctrl = $ctrl;
$app.ctrl.initialize();
};
document.body.appendChild( s );
},
如何清理事件和实例化插件?如果我的 Controller 使用 jQuery 插件并添加事件监听器和 sech 做了很多讨厌的事情怎么办? GC 真的会破坏这些事件,还是它们会 secret 潜伏,等待造成破坏:(令人惊讶的是,它们确实如此)
var $ctrl = {
initialize : function(){
$(window).on('resize',function(){
alert('you resized');
});
}
};
那么这里的解决方案是什么?我的 $app
对象是否应该为事件定义 setter 和 getter,并为 Controller 定义一个干净的方法?那么 Controller 会破坏列表目标及其事件吗?好困惑。
我认为在 2015 年 javascript 在每个现代浏览器中都毫无值(value)是可悲的。
最佳答案
关于Javascript Controller 加载/卸载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32164490/