目录
1、定义
-
- 1、定义
- 2、html
- 3、JavaScript
节流函数的作用是在限定的时间内函数只执行一次。 1、按钮提交(可以避免重复提交,当然不只这种方法,将按钮设置为不可用也可以)。 2、scroll、mousehover、mousemove 等触发频率高的时候。 主要的原理就是在闭包内设置一个标记,在限定的时间内这个 flag 设置为 true,函数再次点击则让执行,setTimeout 函数执行以后将 flag 设置为 flase,就可以继续执行 。
2、htmlvar flag = false; var timer = null; return function() { // 将参数转成数组 var args = [].slice.call(arguments, 0); var context = this; // 如果在限定的时间内 flag 是 true 则直接返回,不让执行 if(flag) { return; } // 函数正在控制中 flag = true; // 执行函数 fn.apply(context, args); // 清除定时器 clearTimeout(timer); timer = setTimeout(function() { // 延时时间过了以后,放开函数控制 flag = false; }, delay); }; }; function fn() { console.log(123); }; // 绑定节流函数 var fn1 = throttle(fn, 2000);