← Назад к функциям
Pro

Event Listeners

Event Listeners обозначают каждый элемент, у которого есть event listener, раскрашенный по типу — щелчок, наведение, прокрутка, касание, клавиатура и форма — показывают, откуда взялся каждый обработчик, и мигают элементы при изменении DOM.

Выяснение того, почему что-то реагирует или не реагирует, обычно начинается с вопроса, на который страница не отвечает: есть ли вообще обработчик кликов на этом элементе? Какой элемент на самом деле отвечает за поведение при наведении? Что слушает прокрутку и заставляет страницу зависать? DevTools браузера могут отображать список listeners одного элемента за раз, если вы уже знаете, какой элемент выбрать.

Этот инструмент отвечает на вопрос сразу для всей страницы. Каждый элемент с listener получает контур своего цвета — щелчок, наведение, прокрутка, касание и перетаскивание, клавиатура или форма и фокус — и наведение на него показывает точные события и источник каждого из них: встроенный атрибут, свойство on-property, обработчик React или Vue, jQuery или addEventListener. Плитки категорий включают и выключают каждый вид, а список под ним дает название каждому элементу, поэтому вы можете перейти к нему одним щелчком мыши.

Фреймворки обрабатываются правильно. React прикрепляет своих listeners к корню и отправляет события внутри, благодаря чему все приложение будет выглядеть кликабельным; инструмент откладывает эти корневые регистрации и показывает обработчики React на элементах, которые их объявляют. Быстрое сканирование не требует перезагрузки и охватывает встроенные обработчики React, Vue и jQuery. Listeners добавленные с помощью простого addEventListener до открытия инструмента, можно увидеть только с начала загрузки страницы, поэтому Reload & record перезагружает страницу один раз с включенной записью — затем инструмент снова открывается сам по себе со всеми включенными listener, а также на уровне страницы в window и document.

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

Предпросмотр в реальном времени
store.example.com
Acme Меню ▾
Купить сейчас
Отзывы
★★★★★ …
button.buy-now
● click React
● mouseenter addEventListener
Event Listeners
14 элементов со listeners · записано с момента загрузки страницы
Event listeners DOM mutations
6
● Нажмите
4
● Наведите указатель мыши
2
● Прокрутка
1
● Клавиатура
button.buy-now
click React mouseenter listener
nav .menu-toggle
mouseenter jQuery click jQuery
section.reviews
scroll listener
input#search
keydown Vue input Vue
Ключевые особенности

Каждый Listener, в общих чертах

Элементы с listeners щелчков, наведения, прокрутки, касания, клавиатуры и форм обведены собственным цветом, а каждый из них можно отобразить или скрыть плитками.

Откуда берется каждый обработчик

Встроенные атрибуты, встроенные свойства, обработчики React и Vue, события jQuery и вызовы addEventListener, помеченные на каждом элементе.

Правильно обрабатывает event delegation React

listeners корневого уровня React отложены, а его обработчики отображаются на элементах, которые их объявляют, а не на всем приложении.

Запись с загрузки страницы

Reload & record перехватывает каждый вызов addEventListener с начала загрузки страницы, включая listeners window и document, только для этой одной загрузки.

Live мутации DOM

Добавленные и удаленные узлы, изменения атрибутов и изменения текста мигают на странице со счетчиком мутаций в секунду.

Найдите самые загруженные элементы

Ранжированный список элементов, которые изменяются больше всего, с задействованными атрибутами прямо указывает на неконтролируемый повторный рендеринг.

Типичные сценарии использования

Поиск отсутствующего обработчика кликов

Сразу посмотрите, действительно ли у кнопки есть listener или вместо этого обработчик находится на элементе-оболочке.

Отслеживание заикания при прокрутке

Найдите каждый элемент, слушающий прокрутку, колесо или сенсорное движение, включая listeners в window и document.

Аудит поддержки клавиатуры

Проверьте, какие элементы управления реагируют на события клавиатуры, а какие — только на мышь.

Обнаружение ненужных повторных рендерингов

Следите за счетчиком мутаций, пока страница простаивает; элементы, которые постоянно меняются, указывают на таймер или структуру, выполняющую дополнительную работу.

Изучение того, как работает страница

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

Как использовать
1

Откройте панель « Event Listeners.

Щелкните значок « Event Listeners в доке DevSuite Pro. Быстрое сканирование запускается немедленно и выделяет каждый найденный элемент.

2

Наведите курсор, чтобы проверить

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

3

Reload & record все

Нажмите Reload & record, чтобы перезагрузить страницу один раз при включенной записи. Инструмент снова открывается самостоятельно и теперь включает каждый вызов addEventListener.

4

Перейти к элементу

Щелкните строку в списке, чтобы прокрутить страницу до этого элемента и запустить его. Copy report дает вам полный список в виде текста.

5

Наблюдайте за изменением DOM

Откройте вкладку DOM mutations и используйте страницу. Меняющиеся элементы мигают, а самые загруженные поднимаются в начало списка.

Готовы попробовать?

Установите DevSuite Pro бесплатно и разблокируйте более 74 инструментов разработчика для вашего браузера.

Добавить в Chrome Добавить в Edge Добавить в FireFox