javascript疑难问题---13、函数防抖
javascript疑难问题---13、函数防抖
一、总结
一句话总结:
防抖函数 就是 一个会频繁触发的函数,在规定的时间内,只让最后一次生效,前面的不生效。算法思路就是 在事件被触发n秒后再执行回调,如果在这n秒内又被触发,则重新计时。
1、防抖函数 的作用?
防止用户的重复(手抖)操作
2、防抖函数 适用的场景?
用户点击事件,比如做题按钮提交 等等
二、函数防抖
博客对应课程的视频位置:13、函数防抖
https://www.fanrenyi.com/video/4/178
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>函数防抖</title> 6 </head> 7 <body> 8 <!-- 9 1、 10 防抖函数: 11 一个会频繁触发的函数,在规定的时间内,只让最后一次生效,前面的不生效 12 13 在事件被触发n秒后再执行回调,如果在这n秒内又被触发,则重新计时。 14 15 2、 16 作用: 17 防止用户的重复(手抖)操作 18 19 3、 20 适用场景: 21 用户点击事件,比如做题按钮提交 22 23 4、 24 函数防抖在实际项目中的应用 25 26 5、 27 思考: 28 如果用户一直点的话,这个函数是不会执行的,大象想想为什么 29 30 31 32 --> 33 <button id="btn">btn</button> 34 <script> 35 36 //在事件被触发n秒后再执行回调,如果在这n秒内又被触发,则重新计时。 37 //计时器 setTimeOut 38 /** 39 * 1、函数防抖 40 * @param fn 要执行的回调函数 41 * @param delay 时间延迟 42 */ 43 function debounce(fn,delay) { 44 //定义一个计时器 45 var timer=null; 46 return function(){ 47 clearTimeout(timer); 48 timer=setTimeout(function () { 49 //fn(); 50 fn.call(this); 51 },delay); 52 }; 53 } 54 document.getElementById('btn').onclick=debounce(function () { 55 console.log('btn按钮被点击了: '+Date.now()); 56 },1500); 57 </script> 58 </body> 59 </html>
版权申明:欢迎转载,但请注明出处
一些博文中有一些参考内容因时间久远找不到来源了没有注明,如果侵权请联系我删除。
在校每年国奖、每年专业第一,加拿大留学,先后工作于华东师范大学和香港教育大学。
2024-10-30:27岁,宅加太忙,特此在网上找女朋友,坐标上海,非诚勿扰,vx:fan404006308
AI交流资料群:753014672