Выбор ответа Middle События обновлено

Зачем passive: true

Вопрос

Зачем передавать { passive: true } слушателю touchmove?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Браузер прокручивает сразу, не ждёт обработчик: preventDefault не будет. Пассивный слушатель обещает не отменять действие по умолчанию.

Варианты ответа

  1. Обработчик выполнится в отдельном потоке и не будет нагружать главный
  2. Событие перестанет всплывать к родителям, и браузер обработает его быстрее
  3. Браузер прокручивает сразу, не ждёт обработчик: preventDefault не будетправильный ответ
  4. Обработчик будет вызываться реже, с встроенным троттлингом до 60 раз в секунду

Разбор

Пассивный слушатель обещает не отменять действие по умолчанию. Тогда браузеру не надо ждать окончания JS перед прокруткой, и она остаётся плавной. Вызов preventDefault внутри такого слушателя игнорируется. Отдельного потока для JS нет, всплытие не меняется, троттлинга опция не даёт.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме