我注意到我的web应用程序中的一个页面在触摸屏PC上使用Chrome时无法滚动。为测试并解决问题,我进入
当启用“Touch Events API”时,Chrome的控制台输出:
[违规] 添加了非被动事件监听器到阻止滚动的
这个违规来自我的
问题:
1. 我不需要任何触摸功能 - 我可以禁用Touch Events API吗?此举是否符合最佳实践?
2. 最新版本的jQuery会“修复”此问题吗?我担心版本跳跃太大……
3. 阅读违规建议,我应该“考虑将事件处理程序标记为‘被动’”,以使页面更具响应性。这是什么意思?有一些JS函数会影响窗口大小和滚动,我该如何使它们成为被动的?
chrome://flags
并禁用“Touch Events API”。相反,要在我的开发机器上出现问题,我启用它(默认设置是自动)。当启用“Touch Events API”时,Chrome的控制台输出:
[违规] 添加了非被动事件监听器到阻止滚动的
touchstart
事件。考虑将事件处理程序标记为“被动”的,以使页面更具响应性。
[违规] 添加了非被动事件监听器到阻止滚动的touchmove
事件。考虑将事件处理程序标记为“被动”的,以使页面更具响应性。这个违规来自我的
jquery.min.js
文件。版本是2.1.3。问题:
1. 我不需要任何触摸功能 - 我可以禁用Touch Events API吗?此举是否符合最佳实践?
2. 最新版本的jQuery会“修复”此问题吗?我担心版本跳跃太大……
3. 阅读违规建议,我应该“考虑将事件处理程序标记为‘被动’”,以使页面更具响应性。这是什么意思?有一些JS函数会影响窗口大小和滚动,我该如何使它们成为被动的?