关于js防抖与节流
2019-05-20 14:41
218 查看
本人纯属个人见解,如有不对的地方请大佬们指出
关于节流和防抖 我也是不久前才注意到的,主要是用来终止一些可持续加载的代码,比如scroll,keyup,keydown这类操作,之前自己做项目的时候已经注意到这种问题,迟迟没有去深究原因,现在我要把自己了解的内容记录下来
**
节流:
**
节流就是指在操作过程中,隔一段时间 就会加载一次代码,比如你设定1秒后执行一次代码,当你操作时,无论怎么样,都会每隔一秒执行一次。
var flag = true; window.onscroll = function(){ var timer = null; if(!flag){ return } flag = false; timer = setTimeout(function(){ console.log('sssss'); flag = true; },1000) }
上述代码中,首先定义一个flag用来判断当前状态,当页面滚动时,注册一个定时器,判断flag如果是false,直接return出函数,如果是true,给定时器赋值,1秒后执行操作,flag赋值为true,在这个过程中,不管页面如何滚动,函数都会在 一秒后执行,这就是函数节流。
防抖
防抖就是指在操作过程中,只有在你停止操作后才会执行一次函数。有且只有一次,多数用到输入命令时。
var fangdou = document.getElementById('fangdou'); function doudou(){ var timer = null; return function(){ if(timer){ clearTimeout(timer); } timer = setTimeout(function(){ console.log('ssss') },1000) } } fangdou.onkeyup = doudou();
上述代码中,首先也是先注册一个定时器,然后在函数防抖中定义一个闭包,判断timer计时器为空的时候,自动清除定时器,然后再给定时器赋值进行自己的操作,当keyup的时候,timer每次都会为null,就会自动清除计时器,函数重新计算执行时间,知道最后一次操作结束 一秒后执行对应操作。
本人描述能力不强,如有不对的地方,请大家勿喷,多多指正,感谢!!!
相关文章推荐
- JS奇淫巧技:防抖函数与节流函数
- js函数节流和防抖
- 浅谈js的防抖和节流
- JS的防抖,节流,柯里化和反柯里化
- 深入理解JS防抖与节流
- js函数防抖、节流实现
- JS中的防抖与节流及作用详解
- js中连续触发事件的稀释方法(函数节流、函数防抖、标识变量)
- 关于函数防抖和函数节流
- js 防抖和节流
- js网络请求性能优化之防抖与节流
- 理解JS的节流、防抖及使用场景
- 学习JS防抖【节流】
- js的防抖与节流处理
- js实现搜索框的节流与防抖
- JS节流和防抖
- JS事件中防抖debounce和节流throttle以及requestAnimationFrame
- [JS]防抖和节流
- [JS]防抖和节流
- 面试准备Js复习之防抖,节流函数原理