防抖函数。

  将几次操作合并为一次操作进行。设置一个计时器,规定在延迟时间后触发函数,但是在延迟时间内如果再次触发,就会取消之前的计时器。如此,只有最后一次操作能触发。代码如下:

function debounce(fn,wait){
let timer=null;
return function(){
let args=arguments,that=this;
timer&&clearTimeout(timer);
timer=setTimeout(function(){fn.apply(that,args)},wait)
}
}

节流函数。

  一定时间内只触发一次函数。并且开始触发一次,结束触发一次。代码如下:

function throttle(fun, delay){
let timer = null;
let startTime = Date.now();
return function(){
let curTime = Date.now();
let remain = delay - (curTime - startTime);
let that = this;
let args = arguments;
clearTimeout(timer);
if(remain <= 0){
fun.apply(that,args);
startTime = Date.now();
}else{
timer = setTimeout(fun, remain);
}
}
}

最新文章

  1. Python练习题 024:求位数及逆序打印
  2. java:抽象类和抽象函数
  3. Java基础知识强化之IO流笔记39:字符流缓冲流之复制文本文件案例01
  4. Run-Time Check Failure #2 - Stack around the variable &#39;ucPriKey&#39; was corrupt
  5. Cacti监控Windows主机,Windows主机的正确配置
  6. 汉诺塔 python版
  7. 计算机的启动和Linux的启动
  8. 用SIM900上传云端数据(原创KEKE)
  9. Codeforces 818B Permutation Game
  10. 前端到后台ThinkPHP开发整站(5)
  11. ajax(2)
  12. GeoServer安装配置
  13. 【BZOJ2299】[HAOI2011]向量(数论)
  14. 《剑指offer》-旋转数组的最小数字
  15. [Java] Header checkBox in Jtable
  16. 搭建项目vue + vue-router + vuex + vue-i18n + element-ui + egg + sequelize
  17. 在Asp.net WebAPI使用Session
  18. 20145310《网络对抗》Exp2 后门原理与实践
  19. 并发工具类(三)控制并发线程的数量 Semphore
  20. Hystrix-超时设置

热门文章

  1. Framework7 无限滚动
  2. @codeforces - 1276F@ Asterisk Substrings
  3. Oracle TRIM函数语法介绍
  4. axios细节之绑定到原型和axios的defaults的配置属性
  5. ViewPager封装工具类: 轻松实现APP导航或APP中的广告栏
  6. SaltStack之用户账户管理
  7. Intellj IDEA14上用Debug启动项目启动不了:Unable to open debugger port: java.net.SocketException &quot;socket closed&quot;
  8. MyBatis-使用XML或注解的简单实例
  9. [Pytorch]基于混和精度的模型加速
  10. 推荐几个web前端比较实用的网站