- 节流:节流是从第一个点击开始算,在这段时间内,你点击多少次,就会执行多少次,但是只返回第一次的一个结果。过了这段时间,再次点击,才会再次点击的结果。节流相对于更保守一点,不易造成资源请求丢失。
- 防抖:防抖是定时器等待时间计算过程中,频繁点击最后只执行一次,也就是说,在点击第一次的时候,定时器会有个等待时间,在这个等待时间中再次点击,他会替换掉第一次点击返回的结果,只执行这段时间中点击的最后一次事件。防抖能够有效避免资源浪费,节省存储空间。
缺点:如果事件在指定时间间隔内被反复的触发,则事件会一直被延时到最后执行。
window.addElementListener( 'scroll', this.scrollTo() );
scroll = () => {
let preTime = new Date().getTime(); //获取时间毫秒数
return () => {
let nowTime = new Date().getTime(); //频繁操作都会执行此部事件
if( nowTime - preTime > 1000 ){ // 只有间隔1s之后,才输出一次结果
console.log('执行事件');
preTime = new Date().getTime(); // 更新历史时间
}
}
}
window.addElementListener( 'scroll', this.scrollTo() );
scroll = () => {
let timeOut = null; // 初始化空定时器
return () => {
clearTimeOut( timeOut ) // 频繁操作,一直清空先前的定时器
timeOut = setTimeOut( ()=>{ // 只执行最后一次事件
console.log('执行事件')
}, 1000 )
}
}
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。