博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【前端工程师手册】30分钟看懂函数防抖和节流
阅读量:5861 次
发布时间:2019-06-19

本文共 793 字,大约阅读时间需要 2 分钟。

防抖和节流

假如有一个饮水机,规定按下按钮之后2秒后开始出水,有个闲得x疼的人很快的按按钮10秒,饮水机会作何反应呢?

防抖(debounce):在按下按钮和出水的这2秒内如果还有人按按钮,饮水机会重新开始计算2秒,也就是说总是以最新的操作为基准来计算时间
节流:即使被人不间断的按按钮了10秒钟,但是饮水机依然不紧不慢的2s出一次水,也就是说不管外部操作的多快,饮水机总会有自己的频率

代码实现

防抖

function debounce(func, delay) {    var timer;    return function() {        clearTimeout(timeout);        timer = setTimeout(function(){          func();        },delay)    };};

节流

function throttle(fn, threshhold) { var timer var start = Date.now(); return function () {    var curr = Date.now();     clearTimeout(timer)    if(curr - start >= threshhold){         fn()        start = curr }else{     timer = setTimeout(function(){        fn()      }, threshhold);    }  }}

说一个神器:,以动画的形式看到两者的区别

使用场景

防抖:频繁操作但是只需要响应最后一次即可

  • 输入框验证,只需要对最后一次输入事件作出验证即可
  • resize事件
  • ...

节流:调节频率,以一定的频率去响应

  • 搜索联想
  • 响应拖拽
  • ...

转载地址:http://jzgjx.baihongyu.com/

你可能感兴趣的文章
17 VMware云的配置与管理
查看>>
pycharm安装第三方插件!
查看>>
解决SSH登录linux服务器慢的问题
查看>>
RadioGroup 的使用 ;
查看>>
selenium应用指南
查看>>
页面滚动条滚动后返回事件----JS
查看>>
攻读计算机研究生的合理性
查看>>
LVS负载均衡(5)——LVS+Keepalived
查看>>
转发接口或下一跳网关的使用情况
查看>>
Windows Phone 8 常用UI控件 (一)
查看>>
CSS渐变色效果的实现方法与效果演示
查看>>
Sort如何进行排序,如何根据出现次数取IP
查看>>
fedora15 ubuntu 11.04
查看>>
composer遇到Your configuration does not allow connection to http://的问题怎么解决
查看>>
Cobbler-CentOS6.7-无人值守安装
查看>>
我的友情链接
查看>>
Python装饰器(Decorate)使用图解
查看>>
簡單使用 tcpdump GNU Linux 範例
查看>>
飞机大战源码
查看>>
Hadoop2.7.3+HBase1.2.5+ZooKeeper3.4.6搭建分布式集群环境
查看>>