[Violation] 向 Angular 4 项目中的滚动阻止“touchstart”事件添加非被动事件侦听器是啥意思?

Posted

技术标签:

【中文标题】[Violation] 向 Angular 4 项目中的滚动阻止“touchstart”事件添加非被动事件侦听器是啥意思?【英文标题】:What is the meaning of [Violation] Added non-passive event listener to a scroll-blocking 'touchstart' event in Angular 4 project?[Violation] 向 Angular 4 项目中的滚动阻止“touchstart”事件添加非被动事件侦听器是什么意思? 【发布时间】:2018-02-18 11:55:17 【问题描述】:

在我的 angular 4 web 项目中,我们遇到了一些违规行为。

    [违规] 向阻止滚动的“touchstart”事件添加了非被动事件侦听器。考虑将事件处理程序标记为“被动”以使页面更具响应性。 [Violation]“DOMContentLoaded”处理程序耗时 183 毫秒 [违规] 执行 javascript 时强制重排耗时 360 毫秒

我们的项目详情是

"@angular/core": "^4.0.0",
"@angular/cli": "^1.4.0",

有什么问题?

谢谢

【问题讨论】:

【参考方案1】:

删除按钮切换上不必要的touchstart 侦听器。

最初添加它是为了防止它捕获用户事件,但现在不再需要它,因为我们在元素上有 pointer-events: none。这也修复了 Chrome 正在记录的警告。

如果你使用 datatables 插件、select2 插件、bootstrapSwitch 插件或一些 jquery 库,可以使用一些不必要的(touchstart)事件。如果您检查这些类型的库或 touchstart 事件,这些错误的数量将会减少。

【讨论】:

第一次违规我理解但其他违规?

以上是关于[Violation] 向 Angular 4 项目中的滚动阻止“touchstart”事件添加非被动事件侦听器是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

6angular1jquery实现无限表单效果

在解决控制台中的 [Violation] 警告时滚动 DIV 时防止页面滚动

我的 Angular 4 应用程序无法向 Spring Boot Server 请求令牌

Access violation at address 怎么办

我们可以在 AOT 之后向 Angular 应用程序添加功能模块吗

Angular5 - 比较数组并返回匹配项