Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Как лучше обрабатывать события с точки зрения оптимизации (https://javascript.ru/forum/events/14989-kak-luchshe-obrabatyvat-sobytiya-s-tochki-zreniya-optimizacii.html)

format1981 08.02.2011 19:54

Как лучше обрабатывать события с точки зрения оптимизации
 
на странице много однотипных элементов события которых надо обрабатывать


1 вариант:
каждый элемент сам вызывает нужную функцию
например onchange="....."

2 вариант:
использовать обработчик событий
(использую mootools но тоже самое можно и на jQuery)
$$('input[id^=blabla').addEvent('change', function(){
... код обработки
тут я по id элемента с помощью регулярных выражений определяю какое действие выполнить
думаю что это сильно замедляет выполнение
}

B@rmaley.e><e 08.02.2011 20:55

1. Принято разделять разметку и фукционал. То есть html отдельно, js отдельно. Первый вариант с этим не согласуется.

2. А сколько элементов у Вас? 10 000? 100 000? Библиотеки оптимизированы под быструю выборку + используют нативные средства (querySelector, querySelectorAll), которые работают значительно быстрее.
И тут нет регулярных выражений.

P.S. К слову о нативных средствах: для того, чтобы можно было их использовать, селектор должен быть валиден. Приведенный Вами селектор правильнее записать так: input[id^="blabla"]

format1981 08.02.2011 22:16

будет около 100 элементов input
id у всех будет однотипные: blabla(X)_blabla(Y)
где (X) и (Y) - целые числа ( номер строки и номер позиции)

И еще вопрос: при таком количестве элементов будет ли правильным не помещать их не в html а генерировать с помощью js?

Маэстро 10.02.2011 18:36

Цитата:

Сообщение от format1981 (Сообщение 91625)
будет около 100 элементов input
id у всех будет однотипные: blabla(X)_blabla(Y)
где (X) и (Y) - целые числа ( номер строки и номер позиции)

И еще вопрос: при таком количестве элементов будет ли правильным не помещать их не в html а генерировать с помощью js?

На 100 элементах Вы особой разницы между одним и другим способом не почувствуете. Поэтому программируйте тем способом, который лучше знаете и который Вам больше нравится. :)
Могу ещё добавить, что если есть возможность не использовать стороннюю библиотеку, то не используйте (зачем грузить лишнее?)
А генерировать с помощью js - это лучше, если весь сайт у Вас так генерируется. А если он сверстан на чистом HTML, то это затруднит отладку.

format1981 10.02.2011 20:21

Это будет компонент для joomla, там mootools идет по умолчанию
Но если генерировать страницу на js то в будущем я думаю возникнут проблемы с мультиязычностью, так что пока буду на html.
Большое спасибо за советы.


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