我注意到,当在触摸屏PC上使用Chrome时,我的网络应用中的页面无法滚动.要测试修复问题,我转到chrome:// flags并禁用“Touch Events API”.相反,为了使问题出现在我的开发机器上,我启用它(默认为auto).
启用Touch Events API后,Chrome的控制台会输出:
[Violation] Added non-passive event listener to a scroll-blocking
touchstart
event. Consider marking event handler as ‘passive’ to make the page more responsive.[Violation] Added non-passive event listener to a scroll-blocking
touchmove
event. Consider marking event handler as ‘passive’ to make the page more responsive.
此违规行为来自我的jquery.min.js文件.版本是2.1.3.
问题:
>我不需要任何触摸功能 – 我可以禁用Touch Events API.
和/或是最佳做法?
>最新版本的jQuery’修复’这个问题吗?我担心这么大的版本跳…
>阅读违规建议,我应该“考虑将事件处理程序标记为’被动’,以使页面更具响应性.” – 那是什么意思?有些JS函数会影响窗口大小和滚动,我怎么能让它们成为被动?
解决方法
你有一个我们可以测试的JSFiddle或代码示例吗?我想知道你的代码中是否存在问题.
如果您有更多问题,您可能还想查看此问题中的解决方案.可能是一个简单的修复或更长的需要编写自己的PassiveEvent处理程序.
Warning: Added non-passive event listener to a scroll-blocking ‘touchstart’ event