Подтвердить что ты не робот

Соглашения об именовании событий JavaScript

Мы просто обсудили возможность использования существующей или прошлой формы для имен событий. Дело в том, что события обычно запускаются после того, как произошло что-то:

store.save(object)
store.trigger("create", object)

Мне интересно, существует ли какое-либо соглашение для именования событий? Было бы разумнее использовать прошлую форму, с другой стороны у меня сложилось впечатление, что использование нынешней формы используется более широко.

Есть ли хорошие ресурсы на эту тему? Знаете ли вы о известных библиотеках JavaScript, которые используют прошлую форму для своих событий?

4b9b3361

Ответ 1

Я бы пошел с настоящим временем.

Большинство, если не все, фреймворки JavaScript, похоже, следуют соглашению, установленному API-интерфейсом JavaScript DOM; то есть использовать существующее время для имен событий. Когда я думаю об этом, это кажется мне наиболее естественным, несмотря на то, что события обрабатываются после их запуска. В конце концов, событие вызвано на. Независимо от того, какое действие выполняется, чтобы вызвать событие, оно происходит в текущей итерации цикла события. Другими словами: что касается цикла событий, событие и действие, которое запускает событие, происходят одновременно.

Некоторые фреймворки, такие как YUI3, предлагают крюк after, а также крюк on для пользовательских событий. Это различие используется в библиотеке атрибутов YUI (amonst others):

Слушатели, зарегистрированные с использованием метода on, уведомляются до, состояние сохраненного атрибута обновлено. [...]

Поскольку эти прослушиватели вызывают до того, как произошли какие-либо изменения состояния, у них есть возможность предотвратить изменение состояния в состоянии [...]

Слушатели, зарегистрированные с помощью метода after, уведомляются после, состояние сохраненного атрибута было обновлено.

Источник: http://yuilibrary.com/yui/docs/attribute/index.html#on-vs-after

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

Ответ 2

Bootstrap определяет два события для каждого действия. Один из них запускается после запуска действия и называется с использованием текущего времени (например, show). Другой инициируется после завершения действия - это имя имеет форму причастия в прошлом (shown).

Все объяснено в http://getbootstrap.com/javascript/#js-events

ИЗМЕНИТЬ

Я предполагаю, что этот подход имеет смысл, когда анимация вступает в игру.