Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 26.07.2017, 14:25
Новичок на форуме
Отправить личное сообщение для GeekHacker Посмотреть профиль Найти все сообщения от GeekHacker
 
Регистрация: 25.07.2017
Сообщений: 9

А причём тут дочерние?
Речь о том, что событие возникает на родителе. С этим вы же спорить не будете? Всплытие ведь. А на родителе у нас висит два обработчика. Вот они и срабатывают.
Ещё раз, берите мой пример и смотрите как работают обработчики. Какое сообщение мы получим в алерте и каким станет значение x после клика на любом потомке.
Ответить с цитированием
  #12 (permalink)  
Старый 26.07.2017, 14:33
Новичок на форуме
Отправить личное сообщение для GeekHacker Посмотреть профиль Найти все сообщения от GeekHacker
 
Регистрация: 25.07.2017
Сообщений: 9

Точнее не событие срабатывает на родителе, а событие всплывает до родителя, на котором срабатывают обработчики.
Да, именно, я спрашивал про "цену". Если у нас на родителе 2 обработчика - это ещё пол беды. Но если их будет 100500 образно говоря, не будет ли это слишком накладно по вычислительным мощностям и не будет ли это существенно стучать по производительности.
Не лучше ли в таком случае вешать обработчики через атрибуты, например, на дочерние элементы сразу? Или же можно не опасаться особо?
Ответить с цитированием
  #13 (permalink)  
Старый 26.07.2017, 14:54
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от GeekHacker
Но если их будет 100500 образно говоря, не будет ли это слишком накладно по вычислительным мощностям и не будет ли это существенно стучать по производительности.
Ну в общем-то и прямая установка обработчика не бесплатна и еще не известно, что более всего будет кушать в вашем приложении. )

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

Если через атрибуты, ну в некоторых случаях может и быть, но как правило, вряд ли это удобно для сопровождения кода. Я так полагаю.
Ответить с цитированием
  #14 (permalink)  
Старый 26.07.2017, 14:57
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

Сообщение от GeekHacker
не будет ли это слишком накладно по вычислительным мощностям и не будет ли это существенно стучать по производительности
Будет
Сообщение от GeekHacker
Не лучше ли в таком случае вешать обработчики через атрибуты
Не лучше

Чем вас jQuery не устраивает?

Последний раз редактировалось Rise, 26.07.2017 в 15:08.
Ответить с цитированием
  #15 (permalink)  
Старый 26.07.2017, 16:02
Новичок на форуме
Отправить личное сообщение для GeekHacker Посмотреть профиль Найти все сообщения от GeekHacker
 
Регистрация: 25.07.2017
Сообщений: 9

Сообщение от laimas Посмотреть сообщение
Ну в общем-то и прямая установка обработчика не бесплатна и еще не известно, что более всего будет кушать в вашем приложении. )

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

Если через атрибуты, ну в некоторых случаях может и быть, но как правило, вряд ли это удобно для сопровождения кода. Я так полагаю.
Да, вы правильно поняли структуру страниц. Шапка и подвал фактически никогда не меняются. Речь идёт преимущественно о центральном блоке.
Проблема только в том, что вариантов страниц (подгружаемых центральных блоков) достаточно много.
При этом, назначать обработчики после подгрузки контента не хотелось бы. Ну типа подгрузить что-то, а потом куча условий, смотреть что же мы подгрузили и вешать обработчики.
Хотелось бы или повесить всё сразу, на все случаи жизни, но этот вариант достаточно прожорливый. Или через атрибуты. Но тут, как вы подметили, крайне неудобно сопровождать.
Просто думал может кто-то писал большие SPA-сайты, узнать какой подход выбрал. И какие впечатления, подводные камни.
Ответить с цитированием
  #16 (permalink)  
Старый 26.07.2017, 16:06
Новичок на форуме
Отправить личное сообщение для GeekHacker Посмотреть профиль Найти все сообщения от GeekHacker
 
Регистрация: 25.07.2017
Сообщений: 9

Сообщение от Rise Посмотреть сообщение
Будет

Не лучше

Чем вас jQuery не устраивает?
jQuery устраивает полностью. Собственно, его и предполагается использовать. Вопрос же не в том, что использовать, а в том как использовать.
Просто изначально хотел построить всё на делегировании. А потом, мягко говоря, побоялся что будет слишком накладно.
Ответить с цитированием
  #17 (permalink)  
Старый 26.07.2017, 16:13
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

GeekHacker,
Element.addEventListener() и jQuery.on() не одно и тоже и работают по разному.
Ответить с цитированием
  #18 (permalink)  
Старый 26.07.2017, 16:30
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от GeekHacker
Проблема только в том, что вариантов страниц (подгружаемых центральных блоков) достаточно много.
Ну это не критерий, ну вряд ли все и даже 3% элементов загружаемого будут требовать обработчиков. )

Я писал сайт для агентства недвижимости, в котором административный раздел весь асинхронный. Не смотря на массу задач раздела, множество сервиса, обслуживающий код небольшой и делегирований не масса. Часть однотипных задач определена объектом функций, запуск которых в том или ином случае определяет сервер (обмен в json), часть в виде плагинов, и т.п. Ведь не смотря на разнообразие задач, многие из них или узлы их, можно обобщить, определив один обработчик, а конкретизация внутри него определяется параметрами.

Не думаю, что и у вас, каждая страница будет требовать индивидуальности 100 процентной, да и не каждая вообще что-то будет требовать, разместили и на том спасибо. )
Ответить с цитированием
  #19 (permalink)  
Старый 26.07.2017, 19:10
Новичок на форуме
Отправить личное сообщение для GeekHacker Посмотреть профиль Найти все сообщения от GeekHacker
 
Регистрация: 25.07.2017
Сообщений: 9

Сообщение от laimas Посмотреть сообщение
Часть однотипных задач определена объектом функций, запуск которых в том или ином случае определяет сервер (обмен в json), часть в виде плагинов, и т.п. Ведь не смотря на разнообразие задач, многие из них или узлы их, можно обобщить, определив один обработчик, а конкретизация внутри него определяется параметрами.
Ну и я решил вот практически таким путём пойти. Попробую, а там видно будет.
В любом случае, спасибо.
Ответить с цитированием
  #20 (permalink)  
Старый 26.07.2017, 21:56
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

Сообщение от GeekHacker
Вопрос же не в том, что использовать, а в том как использовать.
Как можно использовать не понятно что? Говорите что предполагаете использовать jQuery, а о делегировании рассуждаете на другом интерфейсе, это как? Вы вообще различаете что есть что, например что интерфейс jQuery отличается от интерфейса Angular и они оба отличаются от интерфейса нативного JS и других 100500 библиотек и фреймворков?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выбор фреймворка для крупного SPA приложения. AgRuN Библиотеки/Тулкиты/Фреймворки 1 25.03.2017 15:56
ie8 и назначение обработчиков циклом innowed Events/DOM/Window 5 14.03.2017 12:19
Front-end разработчик ищет заказы/работу, SPA приветствуются rekzi Работа 0 07.06.2016 23:42
ajax форум, spa torsar AJAX и COMET 0 21.10.2015 20:52
Назначение обработчиков Через свойство объекта igor' Общие вопросы Javascript 3 05.09.2010 20:07