2016-09-20 8 views
1

Я пишу пользовательский элемент, и я хочу периодически выпустить событие. Испускание события требует некоторой работы, поэтому я подумал, может быть, я могу быть ленивым и только излучать событие (и выполнять работу), если есть слушатель.Обнаружение прослушивателя событий из пользовательского элемента (ленивые события)

Можно ли обнаружить, что кто-то слушает событие (не пузырящийся)? И в этом случае начните излучать, пока слушатель не будет удален.

Или будет время выполнения javascript достаточно умным, чтобы не запускать интервал (где единственный побочный эффект создает событие), когда нет слушателя?

ответ

1

Со стандартными событиями Javascript представляется you can't (кроме вас override).

Но с помощью специальных методов регистрации и обратного вызова вы можете достичь этого, выполнив команду Observer pattern.

В любом случае, это вы ленивы, возможно, проще отправить бесполезные события :-)