简述passive属性

2020-04-01  本文已影响0人  zdxhxh

导语

在不知道哪个版本的浏览器DOM更新了addEventListener这个方法

本来这个方法的第三个参数 是useCapture,他有两个值

他开始支持了第三个参数可以为对象,该对象有以下三个值

passive的产生背景

在移动端中,很多开发者会监听touchmove touchstart touchend等等这些事件

但是用户操作这些事件时,会触发scroll这一默认事件,但是浏览器不知道这些touch事件里面是否使用了e.preventDefault属性

如果使用了e.preventDefault事件,会阻止scroll事件,所以这些touch事件会阻塞浏览器的滚动行为,浏览器会等待touch事件结束再进行滚动

passive带来的性能优化

addEventListener设置了passive,相当于告诉了浏览器这个事件不会使用e.preventDefault

从而优化了浏览器性能

你可以在html中添加

docuemnt.addEventListener('touchmove',function(e){
  // 不阻止了滚动行为
  //  e.preventDefault() 
},{passive:false})


// 相当于我们
docuemnt.addEventListener('touchmove',function(e){
  
},{passive:true})
上一篇 下一篇

猜你喜欢

热点阅读