Рассмотрите маркировку обработчика событий как "пассивного", чтобы сделать страницу более отзывчивой

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

обработка входного события "touchstart" была задержана для x ms из-за основной поток занят. Рассмотрим маркировку обработчика событий как "пассивного" для сделайте страницу более отзывчивой.

поэтому я попытался добавить "пассивный" к слушателю так

Hammer(element[0]).on("touchstart", function(ev) {
  // stuff
}, {
  passive: true
});

но я все еще получаю это предупреждение.

1 ответов


для тех, кто получает это предупреждение в первый раз, это связано с функцией кровоточащего края под названием Пассивные Прослушиватели Событий это было реализовано в браузерах совсем недавно (лето 2016). От https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md:

пассивные слушатели события являются новой функцией в спецификации DOM, которая позволяет разработчики, чтобы выбрать в, чтобы улучшить производительность прокрутки путем устранения необходимость прокрутки для блокировки на сенсорных и колесных слушателей событий. Разработчики могут аннотировать прослушиватели touch и wheel с помощью {passive: true} чтобы указать, что они никогда не будут вызывать preventDefault. Эта особенность поставляется в Chrome 51, Firefox 49 и приземлился в WebKit. для полного официального объяснения подробнее здесь.

Читайте также: Что такое пассивные слушатели?

возможно, вам придется подождать .библиотека JS для реализации поддержка.

Если вы обрабатываете события косвенно через библиотеку JavaScript, вы можете быть во власти поддержки этой конкретной библиотеки для этой функции. По состоянию на август 2016 года не похож ни на одну из крупных библиотек реализована поддержка. Некоторые примеры: