繁体   English   中英

Javascript控制器加载/卸载

[英]Javascript Controller Loading/unloading

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

在我的应用程序中说,我决定调用当前加载的任何控制器,如$app.ctrl

现在当我将$app.ctrl设置$app.ctrl null时,控制器创建的任何事件怎么样?

例如,我的应用可能加载这样的控制器:

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 );
},

如何清理事件和实例化插件? 如果我的控制器使用jQuery插件和添加事件监听器和sech做了很多令人讨厌的事情怎么办? GC真的会破坏这些事件,还是暗中潜伏,等待造成严重破坏:(太惊讶了,他们这样做)

var $ctrl = {

    initialize : function(){
        $(window).on('resize',function(){
            alert('you resized');
        });
    }

};

那么这里的解决方案是什么? 我的$app对象应该为事件定义setter和getter,还为控制器定义一个干净的方法? 然后控制器诽谤列表目标及其事件? 如此迷茫。

我认为2015年的javascript在每个现代浏览器中都毫无价值,这是可悲的。

解决方案是使用.off()调用de-initialize函数:

参考:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM