防抖和
节流的
实现方法有很多种,以下是两种比较常见的
实现方式:
1. 使用setTimeout
实现 防抖和
节流 防抖:
javascript节流functiondebo unce(fn, delay) {let timer = null;return function() {clearTimeout(timer);timer = setTimeout(() => {fn.apply(this, arguments);}, delay);};}
:
javascriptfunctionthro ttle(fn, delay) {let timer = null;return function() {if (!timer) {timer = setTimeout(() => {fn.apply(this, arguments);timer = null;}, delay);}};}
2. 使用时间戳
实现 防抖和
节流 防抖:
javascript节流functiondebo unce(fn, delay) {let timer = null;return function() {const now = +new Date();if (timer && now - timer < delay) {clearTimeout(timer);}timer = setTimeout(() => {fn.apply(this, arguments);}, delay);};}
:
javascriptfunctionthro ttle(fn, delay) {let lastTime = 0;return function() {const now = +new Date();if (now - lastTime > delay) {fn.apply(this, arguments);lastTime = now;}};}
以上两种
实现方式都可以
实现 防抖和
节流,使用哪种方式取决于个人的喜好和具体应用场景。
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/3431.html