ExtJS 5.0 - 在侦听器中调用un或removeEventListener?

时间:2015-12-08 21:22:43

标签: javascript extjs extjs5

我们的一些遗留代码会创建具有on和匿名函数的侦听器。这些听众的生命周期有限。

代码是这样的:

me.getEl().on(someCondition()? 'mousedown': 'touchstart',
    function(event) {
        if (someOtherCondition()) {
            destroyStuff();
            // We don't need this listener any more!
            // ***
        }
    }
);

在应用程序运行时检查资源使用情况,这些僵尸侦听器会累积,特别是鼠标悬停,会占用大量资源和周期。

有没有办法在un评论下面使用removeEventListener// ***并移除听众?在这些方面说些什么:

event.target.removeEventListener(event.type, /* reference this anonymous function? */);

1 个答案:

答案 0 :(得分:3)

您有多种选择。

  • on如果只执行一次,则会获取可能包含options的{​​{1}}参数。我认为这对你的例子不起作用,因为监听器可以被多次调用,但可能对于一些没有条件的用例。
  • 您可以将monsingle:true一起使用来创建可销毁的侦听器。可以使用mun删除这些侦听器。