На моем сайте есть элементы с «прослушивателями событий» (.live, .bind или .delegate), и я могу разделить их на группы по частоте их появления:
- Элементы на каждой странице.
- Элементы на некоторых страницах.
Если у меня есть элемент, который находится на каждой странице, и для этого элемента требуется прослушиватель, тогда, конечно, я просто реализую этот прослушиватель для всего сайта.
Я пытаюсь выяснить, что будет мудрее для элемента, который (а) появляется только на нескольких страницах и (б) требует прослушивателя:
- Реализация слушателя по всему сайту
- Реализуйте слушатель так, чтобы он сначала был инициализирован на любой странице, которая хочет его использовать
Например, скажем, у меня есть
<input class='autocomplete' />
, который появляется на нескольких страницах, но не на всем сайте. Когда кто-то вводит текст, он попадает в базу данных и пытается завершить свой запрос для него.
Поскольку этот элемент появляется не на каждой странице, достаточно ли служебных данных jQuery.live('someEventsHere',MyHandler())
достаточно, чтобы я мог вызывать его только на тех страницах, где он используется? (Например, создавая функцию initializeMyHandler()
и вызывая ее на этих страницах?) Или, на страницах, где этот слушатель не будет использоваться, это достаточно дешево, чтобы в любом случае установить и не беспокоиться?