防抖:如果短时间内大量触发同一事件,只会执行一次函数,将多次执行变为最后一次执行。
防抖函数的应用场景:
- 按钮提交场景:防⽌多次提交按钮,只执⾏最后提交的⼀次
- 服务端验证场景:表单验证需要服务端配合,只执⾏⼀段连续的输⼊事件的最后⼀次,还有搜索联想词功能类似⽣存环境请⽤lodash.debounce
代码实现如下:
/防抖debounce代码: function debounce(fn,delay) { var timer = null; // 创建一个标记用来存放定时器的返回值 return function () { // 每当用户输入的时候把前一个 setTimeout clear 掉 clearTimeout(timer); // 然后又创建一个新的 setTimeout, 这样就能保证interval 间隔内如果事件持续触发,就不会执行 fn 函数 timer = setTimeout(() => { fn.apply(this, arguments); }, delay); } }
标签:防抖,场景,debounce,前端,timer,setTimeout,优化,fn From: https://www.cnblogs.com/zrty/p/16658787.html