技术专栏

JS事件截流 / 防抖

2018-07-19  本文已影响22人  ErrorCode233

JS事件截流

在使用scroll,resize,mousemove等方法的时候,由于触发次数过于频繁,一般会使用一个节流的方法来实现方法的调用

//首先定义一个全局函数
let timeOutId = null;
//定义一个延时定制器的回掉函数
function callBack(){
    const top = warpper.getBoundingClientRect().top;
    if(top && top < winHeight){
        loadMoreFn();
    }
}
//scroll方法
window.addEventListener('scroll',()=>{
    // 如果isLoadingMore = true 那么不做处理

    //如果timeOutId被赋值了,那么就清理掉延迟定时器
    if(timeOutId){
        clearTimeout(timeOutId);
    }

    //回调函数延迟50毫秒触发
    timeOutId = setTimeout(callBack,50);
},false);


使用这种方法可以减少scroll事件不必要的触发函数,是一个很好的节省页面性能的方法

上一篇下一篇

猜你喜欢

热点阅读