做网站要签合同吗,网站申请微信支付接口,怎样注册微信小商店,网站轮播代码防抖#xff08;Debouncing#xff09;#xff1a; 防抖是指在事件被触发后#xff0c;等待一定的时间间隔#xff0c;如果在这个时间间隔内再次触发该事件#xff0c;则重新计时。只有当事件停止触发一段时间后#xff0c;才会执行相应的操作。防抖常用于优化输入框的搜…防抖Debouncing 防抖是指在事件被触发后等待一定的时间间隔如果在这个时间间隔内再次触发该事件则重新计时。只有当事件停止触发一段时间后才会执行相应的操作。防抖常用于优化输入框的搜索建议、滚动事件等场景可以减少不必要的请求或操作提升性能。
节流Throttling 节流是指在一定的时间间隔内只触发一次事件即使事件在这段时间内多次触发也只会执行一次相应的操作。节流常用于优化滚动事件、窗口调整事件等可以减少事件处理的频率提高性能。
可以参考下图进行理解 概念理解了但是怎么实现防抖和节流呢
例如下列代码实现的效果是我只要我输入一个内容就会触发一次。
function search(e) {let str 您输入了 e.value br /;s1.innerHTML s1.innerHTML str
}function search2(e) {let str 您输入了 e.value br /;s2.innerHTML s2.innerHTML str
} 防抖
var timer;
function search(e) {// 判断如果timer存在那么则将timer清除if(timer){clearTimeout(timer)}timer setTimeout(() {let str 您输入了 e.value br /;s1.innerHTML s1.innerHTML str},3000);
}
节流
//定义一个变量
var lastTime;
function search2(e) {var newTime new Date();//判断当前时间是否已经过了三秒if(!lastTime || newTime - lastTime 3000){let str 您输入了 e.value br /;s2.innerHTML s2.innerHTML str;//三秒过后将我定义的变量稀释掉lastTime newTime;}
}