在努力提升渐进式网络应用的性能时,我遇到了一项新功能Passive Event Listeners
,我发现很难理解这个概念。
什么是Passive Event Listeners
以及在我们的项目中需要什么?
答案 0 :(得分:149)
被动事件监听器是一种新兴的Web标准,新功能 在Chrome 51中发布,可以提供滚动的主要潜力 性能。 Chrome Release Notes.
它使开发人员能够通过无需滚动阻止触摸和滚轮事件监听器来选择加入更好的滚动性能。
问题:所有现代浏览器都有一个线程滚动功能,即使在运行昂贵的JavaScript时也允许滚动顺利运行,但是这种优化部分地被等待任何结果的需要所击败{ {1}}和touchstart
处理程序,可能会通过调用事件touchmove
来完全阻止滚动。
解决方案:preventDefault()
通过将触摸或轮子侦听器标记为被动,开发人员承诺处理程序不会调用{passive: true}
来禁用滚动。 preventDefault
。
This frees the browser up to respond to scrolling immediately without waiting for JavaScript, thus ensuring a reliably smooth scrolling experience for the user