我正在使用锤子进行拖动,并且在加载其他东西时它会变得不稳定,正如此警告消息告诉我的那样 .
由于主线程忙,“touchstart”输入事件的处理延迟了X ms . 考虑将事件处理程序标记为“被动”以使页面更具响应性 .
所以我试着像这样向听众添加“被动”
Hammer(element[0]).on("touchstart", function(ev) { // stuff }, { passive: true });
但我仍然收到这个警告 .
对于那些第一次接收此警告的人来说,这是由于最近在2016年夏天在浏览器中实现的名为_1689146的最新功能 . 来自https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md:
被动事件侦听器是DOM规范中的一项新功能,通过消除滚动阻止触摸和滚轮事件侦听器的需要,开发人员可以选择更好地滚动性能 . 开发人员可以使用{passive:true}注释触摸和轮式侦听器,以指示它们永远不会调用preventDefault . 此功能在Chrome 51,Firefox 49中提供,并在WebKit中登陆 . 有关完整的官方解释,请在此处阅
另见:What are passive event listeners?
如果您通过JavaScript库间接处理事件,您可能会受到特定库对该功能的支持 . 截至2016年8月,它似乎没有任何主要图书馆实施支持 . 一些例子:
jQuery.js - 正在进行的问题:https://github.com/jquery/jquery/issues/2871
React.js - 正在进行的问题:https://github.com/facebook/react/issues/6436
Hammer.js - 正在进行的问题:https://github.com/hammerjs/hammer.js/pull/987
perfect-scrollbar - 正在进行的问题:https://github.com/noraesae/perfect-scrollbar/issues/560
AngularJS - 正在进行的问题:https://github.com/angular/angular.js/issues/15901
1 回答
对于那些第一次接收此警告的人来说,这是由于最近在2016年夏天在浏览器中实现的名为_1689146的最新功能 . 来自https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md:
另见:What are passive event listeners?
您可能需要等待.js库实现支持 .
如果您通过JavaScript库间接处理事件,您可能会受到特定库对该功能的支持 . 截至2016年8月,它似乎没有任何主要图书馆实施支持 . 一些例子:
jQuery.js - 正在进行的问题:https://github.com/jquery/jquery/issues/2871
React.js - 正在进行的问题:https://github.com/facebook/react/issues/6436
Hammer.js - 正在进行的问题:https://github.com/hammerjs/hammer.js/pull/987
perfect-scrollbar - 正在进行的问题:https://github.com/noraesae/perfect-scrollbar/issues/560
AngularJS - 正在进行的问题:https://github.com/angular/angular.js/issues/15901