Множество пользовательских событий JS через тег body - PullRequest
3 голосов
/ 12 февраля 2012

Итак, я начал активно использовать пользовательские события в приложении, которое я пишу, и обнаружил, что связываю их все с тегом body .Лично я предпочел бы вообще не связываться с каким-либо тегом для пользовательских событий.

Я делаю что-то не так (у меня такое ощущение)?Также есть ли вред в связывании и запуске большого количества событий через тег body ?

Я использую jQuery bind и trigger .

Ответы [ 2 ]

3 голосов
/ 12 февраля 2012

вы можете использовать jQuery pub / sub плагин от Peter Higgins действительно маленький и простой, и вы не привязываете реальные события к телу

1 голос
/ 12 февраля 2012

После быстрого теста я обнаружил, что пользовательские события в jQuery даже не асинхронны , что разочаровывает, если не сказать больше.

Я ожидаю, если мне придется 'привязать'элементу jQuery делегировал бы DOM для запуска события, но, возможно, DOM будет запускать только те события, которые являются частью механизма, что вызывает вопрос, почему jQuery когда-либо попросит вас связать пользовательские события с элементами DOM вво-первых, это просто кажется глупым.

Я надеюсь, что jQuery делегирует DOM под капотом, и мы будем избегать кода пользовательского пространства, подобного тому, который мы находим в pubsub (он, вероятно, медленнее, чем код движка и линеаризуетсязапуск событий), но, похоже, DOM не предоставляет такого механизма (по крайней мере, я сомневаюсь, что jQuery не использует преимущества при реализации пользовательских событий).

Что ж, это заслуга pubsubплагин, но я разочарован на обоих уровнях сейчас.Я бы рискнул предположить, что это означает, что нет никакого вреда в «привязке» тонны событий к одному элементу DOM, поскольку вы просто создаете массив внутри jQuery.В худшем случае у нас есть очень большой массив зарегистрированных событий, который должен линейно проходиться при каждом запуске пользовательского события.> Напомнил о реализации событий внутри PHP .. <</p>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...