Мне интересно узнать о преимуществах производительности при использовании hasEventListener () по сравнению со слепой отправкой события?
Например, я вижу в фрагментах кода платформы Flex, таких как:
// from ArrayList.setItemAt()
var hasCollectionListener:Boolean = hasEventListener(CollectionEvent.COLLECTION_CHANGE);
if (hasCollectionListener)
{
dispatchEvent(new CollectionEvent(....))
}
Я предполагаю, что это означает, что есть преимущества в производительности, связанные с тем, что событие не отправляется, если никто его не слушает, а не отправляет его вслепую, независимо от того, есть ли подключенные слушатели.
Однако это не 'Кажется, это имеет смысл.
Конечно, слушатели внутренне хранятся в некотором виде перфорированной хэш-карты.Я бы подумал, что проверка того, существует ли прослушиватель, примерно такая же производительная, как итерация по пустому массиву слушателей.
Поэтому, зачем беспокоиться о проверке, а не просто слепо вызывать метод dispatchEvent
?Исходный пример кода значительно неуклюже, чем если бы они только что отправили событие.
С уважением,
Марти