码迷,mamicode.com
首页 > 其他好文 > 详细

阻止默认行为是配合passive使用

时间:2018-05-21 16:11:57      阅读:4955      评论:0      收藏:0      [点我收藏+]

标签:use   滑动   性能   设置   使用   目的   col   pre   get   

在使用lighthouse检测pwa应用时,发现提示下面有下面的警告
技术分享图片

 

默认使用passive:true提高滚动性能并减少崩溃,passive即顺从的,是指它顺从浏览器的默认行为。设置该属性的目的主要是为了在阻止事件默认行为导致的卡顿。一般我们写阻止默认行为的代码如下:

ele.addEventListener(touchmove, function (e) { e.preventDefault();});

//如果我们是为了阻止页面滚动添加了上述代码,默认行为就是滚动页面,但是如果我们阻止了这一默认行为,浏览器是无法预先知道的,必须等待事件监听器执行完成后,才知道要去阻止默认行为。等待监听器的执行是耗时的,,有些甚至耗时很明显,这样就会导致页面卡顿。即便监听器是个空函数,也会产生一定的卡顿,毕竟空函数的执行也会耗时。所以就有了passive属性,如果要阻止默认事件可以设置passive:false,
//阻止事件的默认行为时,

document.body.addEventListener(touchmove, function (e) {
    e.preventDefault(); //阻止默认的处理方式(阻止下拉滑动的效果)
}, {passive: false}); //passive 参数不能省略,用来兼容ios和android

 

//如果设置了passive为true,同时又阻止默认行为,阻止是不生效的

document.addEventListener("touchmove", function(event) {
event.preventDefault() //不产生作用
}, {
passive: true
})

 

详细请参考:https://www.cnblogs.com/ziyunfei/p/5545439.html

阻止默认行为是配合passive使用

标签:use   滑动   性能   设置   使用   目的   col   pre   get   

原文地址:https://www.cnblogs.com/lydialee/p/9067273.html

(0)
(1)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!