[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”事件添加非被动事件侦听器是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章
在解决控制台中的 [Violation] 警告时滚动 DIV 时防止页面滚动
我的 Angular 4 应用程序无法向 Spring Boot Server 请求令牌
Access violation at address 怎么办