1
我們的一些傳統代碼可以創建具有on
和匿名函數的偵聽器。這些聽衆的壽命有限。ExtJS 5.0 - 在偵聽器中調用un或removeEventListener?
代碼是這樣的:
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? */);
'mon'在ExtJS5中不推薦使用 - 只是使用'on'。正如你所說,可以使用'destroyable:true'參數來返回一個處理程序來刪除監聽器。 –
這是沒有道理的,因爲通常情況下,您會棄用在較新版本中從源代碼中刪除的內容。在6.0.1中,'mon'不再被棄用,至少不是根據文檔。 – Alexander
謝謝,我使用'single:true'來處理它所應用的情況。其他人則爲其他人做了TODO! –