Корректная разработка обработчиков событий

В статье "Develop Smart Event Handlers" автор говорит о рациональном подходе при использовании обработчиков событий. Он рекомендует прикреплять один обработчик для целой группы элементов, а не для каждого элемента отдельный обработчик.

Иногда страницы открываются медленнее из-за слишком большого количества обработчиков событий при различных элементах дерева DOM. Вот почему использование делегированных событий оправдывает себя. Если у вас 10 элементов внутри тега div, то прикрепите только один обработчик событий для всех элементов тега div, вместо того, чтобы прикреплять отдельный обработчик для каждого элемента. События "всплывут" и Вы сможете поймать событие, и выяснить, с каким элементом оно связано.

Вам также не нужно ждать события для того, чтобы начать работать с деревом DOM. Зачастую всё, что вам нужно, так это то, чтобы элемент, к которому Вы хотите получить доступ, был доступен в дереве. Вам не придётся ждать загрузки всех изображений. DOMContentLoaded - то событие, которое Вы могли бы использовать вместо onload, но пока он доступен во всех браузерах, вы можете использовать утилиту  YUI Event, которая имеет метод onAvailable.

Для получения дополнительной информации см. статью Julien Lecomte "Высокопроизводительные Ajax-приложения".

 

Оригинал статьи на developer.yahoo.com

Перевод КОМТЕТ komtet.ru