在使用lighthouse检测pwa应用时,发现提示下面有下面的警告html
默认使用passive:true提升滚动性能并减小崩溃,passive即顺从的,是指它顺从浏览器的默认行为。设置该属性的目的主要是为了在阻止事件默认行为致使的卡顿。通常咱们写阻止默认行为的代码以下:android
ele.addEventListener('touchmove', function (e) { e.preventDefault();});
//若是咱们是为了阻止页面滚动添加了上述代码,默认行为就是滚动页面,可是若是咱们阻止了这一默认行为,浏览器是没法预先知道的,必须等待事件监听器执行完成后,才知道要去阻止默认行为。等待监听器的执行是耗时的,,有些甚至耗时很明显,这样就会致使页面卡顿。即使监听器是个空函数,也会产生必定的卡顿,毕竟空函数的执行也会耗时。因此就有了passive属性,若是要阻止默认事件能够设置passive:false,
//阻止事件的默认行为时,ios
document.body.addEventListener('touchmove', function (e) { e.preventDefault(); //阻止默认的处理方式(阻止下拉滑动的效果) }, {passive: false}); //passive 参数不能省略,用来兼容ios和android
//若是设置了passive为true,同时又阻止默认行为,阻止是不生效的浏览器
document.addEventListener("touchmove", function(event) { event.preventDefault() //不产生做用 }, { passive: true })