Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Где лучше вешать обработчики событий? (https://javascript.ru/forum/events/43916-gde-luchshe-veshat-obrabotchiki-sobytijj.html)

BETEPAH 26.12.2013 12:40

Где лучше вешать обработчики событий?
 
Назрел такой вопрос: где лучше вешать обработчики событий - во внешнем js-файле или непосредственно на странице?
Речь идет о сайте, который имеет пару десятков типов страниц.
Если навешивание вынести во внешний файл, он будет "слушать" все типы страниц, даже те, на которых искомого селектора не может быть в принципе.
Если навешивать непосредственно на страницах, то усложняется поддержка кода и увеличивается объем кода.
Как можно замерить падение производительности при навешивании во внешнем файле? Есть ли какие-то таблицы показывающие зависимость от количества обработчиков, от браузера, от мощности клиентского компьютера?

danik.js 26.12.2013 13:02

Можно еще так сделать:
В файле объявляешь несколько функций:
var site = {
    initComments: function() {},
    initNews: function() {},
    initHomePage: function() {}
};


А в самой странице просто дергаешь нужную функцию.
Цитата:

Сообщение от BETEPAH
Как можно замерить падение производительности при навешивании во внешнем файле?

Никак не можно. Она ничтожно мала, если только у тебя не тысячи элементов на странице. Лучше думай об оптимизации обработчиков скролла, анимациях и прочих вещах, действительно чувствительных к плохому коду.

BETEPAH 26.12.2013 13:06

$(function(){
    $('.tt_latin-verify').bind('input propertychange', function() {latinVerify(this);});
})
Такой код во внешнем файле насколько нагружает страницы? Допустим, если будет сотня подобных обработчиков? Интересуют слабые конфигурации компьютера. Есть ли какие-то методы проверки или табличные данные?
P.S. про bind я в курсе, но на проекте пока старый jQuery

ksa 26.12.2013 13:17

Цитата:

Сообщение от BETEPAH
Такой код во внешнем файле насколько нагружает страницы? Допустим, если будет сотня подобных обработчиков?

Для такого количества можно и самому тестик написать... Потом опробовать...

Вот только больше соглашусь с
Цитата:

Сообщение от danik.js
Она ничтожно мала
...
Лучше думай об оптимизации обработчиков скролла, анимациях и прочих вещах, действительно чувствительных к плохому коду.


BETEPAH 26.12.2013 13:27

Цитата:

Сообщение от ksa
Вот только больше соглашусь с

с этим я тоже абсолютно согласен. Тоже придерживаюсь мнения, что нагрузка одноразовых обработчиков ничтожна, но возник спор с коллегой и решил поинтересоваться мнением общества :)
Спасибо!

ksa 26.12.2013 20:40

Цитата:

Сообщение от BETEPAH
возник спор с коллегой

Любой тест с засечкой по времени все разъяснит... ;)


Часовой пояс GMT +3, время: 03:01.