Некоторые из наших устаревших кодов создают слушатели с 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 для кого-то еще, чтобы сделать это! –