Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.02.2011, 20:54
Интересующийся
Отправить личное сообщение для format1981 Посмотреть профиль Найти все сообщения от format1981
 
Регистрация: 22.10.2009
Сообщений: 22

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


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

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

Последний раз редактировалось format1981, 08.02.2011 в 21:02.
Ответить с цитированием
  #2 (permalink)  
Старый 08.02.2011, 21:55
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

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

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

P.S. К слову о нативных средствах: для того, чтобы можно было их использовать, селектор должен быть валиден. Приведенный Вами селектор правильнее записать так: input[id^="blabla"]
Ответить с цитированием
  #3 (permalink)  
Старый 08.02.2011, 23:16
Интересующийся
Отправить личное сообщение для format1981 Посмотреть профиль Найти все сообщения от format1981
 
Регистрация: 22.10.2009
Сообщений: 22

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

И еще вопрос: при таком количестве элементов будет ли правильным не помещать их не в html а генерировать с помощью js?
Ответить с цитированием
  #4 (permalink)  
Старый 10.02.2011, 19:36
Профессор
Отправить личное сообщение для Маэстро Посмотреть профиль Найти все сообщения от Маэстро
 
Регистрация: 02.07.2010
Сообщений: 642

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

И еще вопрос: при таком количестве элементов будет ли правильным не помещать их не в html а генерировать с помощью js?
На 100 элементах Вы особой разницы между одним и другим способом не почувствуете. Поэтому программируйте тем способом, который лучше знаете и который Вам больше нравится.
Могу ещё добавить, что если есть возможность не использовать стороннюю библиотеку, то не используйте (зачем грузить лишнее?)
А генерировать с помощью js - это лучше, если весь сайт у Вас так генерируется. А если он сверстан на чистом HTML, то это затруднит отладку.
Ответить с цитированием
  #5 (permalink)  
Старый 10.02.2011, 21:21
Интересующийся
Отправить личное сообщение для format1981 Посмотреть профиль Найти все сообщения от format1981
 
Регистрация: 22.10.2009
Сообщений: 22

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как в IE динамически установить значение события onClick? Гость Элементы интерфейса 6 16.01.2011 23:46
Как вызвать событие после события определенного в onchange Наталья Events/DOM/Window 2 12.09.2009 13:51
Обработчик события: как делает jquery? Shasoft jQuery 35 22.04.2009 09:41
Как заставить this в обработчике события указывать на объект? Dmitryk Events/DOM/Window 3 16.03.2009 08:45
Как лучше сделать глобальный массив skyfish AJAX и COMET 4 17.02.2009 18:05