节流函数的实现,一次面试题遇到的编程题

举报
孙叫兽 发表于 2021/03/28 03:00:58 2021/03/28
【摘要】 在日常开发中有很多场景我们都需要用到节流函数和防抖函数,比如:实现输入框的模糊查询因为需要轮询ajax,影响浏览器性能,所以需要用到节流函数;实现手机号、姓名之类的的验证,往往我们只需要验证一次,这个时候我们就需要用到防抖函数;防抖函数的实现 节流函数 顾名思义,就是节省流量节省内存性能的一种函数,可以理解为是一种性能优化方案; 举个例子:一个水龙头一直...

在日常开发中有很多场景我们都需要用到节流函数和防抖函数,比如:实现输入框的模糊查询因为需要轮询ajax,影响浏览器性能,所以需要用到节流函数;实现手机号、姓名之类的的验证,往往我们只需要验证一次,这个时候我们就需要用到防抖函数;防抖函数的实现

节流函数

顾名思义,就是节省流量节省内存性能的一种函数,可以理解为是一种性能优化方案;

举个例子:一个水龙头一直在滴水,可能一次性会滴很多水,但是我们想控制它的频率 ,让它每1000毫秒滴一滴水,这个时候我们就可以用到节流函数来进行控制(简单可以理解为类似于周期性定时器)

 


  
  1. //首先定义一个全局变量
  2. var canRun = true;
  3. //当浏览器窗口大小发生变化也就是重新计算窗口大小的时候触发
  4. window.onresize = function(){
  5. // 取反,canRun为false的情况下
  6. if(!canRun){
  7. //直接return,后面的代码不执行
  8. return
  9. }
  10. //走到这来就是canRun为true的情况,然后进行赋值为false
  11. canRun = false
  12. //设置一个定时器进行轮询操作
  13. setTimeout( function () {
  14. //这是要做的事情
  15. console.log("函数节流")
  16. //最后记得重新赋值true继续让他取反
  17. canRun = true
  18. //每隔1000毫秒也就是1秒钟就执行一次
  19. }, 1000)
  20. }

 防抖函数和节流函数都是用来提升性能优化及用户体验的一种方案,节流函数会规律性的执行多次;

文章来源: sunmenglei.blog.csdn.net,作者:孙叫兽,版权归原作者所有,如需转载,请联系作者。

原文链接:sunmenglei.blog.csdn.net/article/details/109767811

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。