gpt4 book ai didi

Javascript Controller 加载/卸载

转载 作者:行者123 更新时间:2023-11-29 14:46:27 25 4
gpt4 key购买 nike

这些问题中的大多数都没有非常全面的答案。

在我的应用程序中,我决定调用当前加载的任何 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)是可悲的。

最佳答案

解决方案是使用 .off() 调用取消初始化函数:

引用:

https://api.jquery.com/off/

关于Javascript Controller 加载/卸载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32164490/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com