什么是被动事件监听器?

2020/10/19 16:21 · javascript ·  · 0评论

在努力提高渐进式Web应用程序的性能时,我遇到了一个新功能Passive Event Listeners,但我很难理解这个概念。

Passive Event Listeners在我们的项目中有什么以及有什么需要?

被动事件侦听器是一种新兴的网络标准,是Chrome 51附带的一项新功能,可以极大地提高滚动性能。Chrome发行说明。

它使开发人员可以选择无需滚动来阻塞触摸和滚轮事件监听器,从而选择更好的滚动性能。

问题:所有现代浏览器都具有线程化滚动功能,即使在运行昂贵的JavaScript时,滚动操作也可以平稳运行,但是这种优化由于需要等待任何touchstarttouchmove处理程序的结果而被部分挫败,这可能会通过调用来完全阻止滚动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

document.addEventListener("touchstart", function(e) {
    console.log(e.defaultPrevented);  // will be false
    e.preventDefault();   // does nothing since the listener is passive
    console.log(e.defaultPrevented);  // still false
}, Modernizr.passiveeventlisteners ? {passive: true} : false);

DOM Spec演示视频解释文档

本文地址:http://javascript.askforanswer.com/shenmeshibeidongshijianjiantingqi.html
文章标签: ,   ,   ,  
版权声明:本文为原创文章,版权归 javascript 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!