比如说我们在使用百度、360浏览器搜索时,每次输入之后都有联想词弹出,
这个控制联想词的方法不可能是输入框内容一改变就触发的,
他一定是当你结束输入一段时间之后才会触发。
let timer
input.on(‘input‘, () => {
clearTimeout(timer)
// 停止输入 500 毫秒后开始搜索
timer = setTimeout(() => {
// 搜索
}, 500)
})
我们平时在淘宝抢购某一件限量热卖商品时,你不断点刷新点购买,你会发现你点击的时候总有一阵时间它没反应,
这里就应用到了节流,这是因为怕点的太快导致服务器或者系统崩溃。
1 let isClick = false 2 button.on(‘click‘, () => { 3 if (isClick) return 4 isClick = true 5 // 其他代码。。。 6 // 每 10 秒只允许点击一次 7 setTimeout(() => { 8 isClick = false 9 }, 10000) 10 })
在发生持续触发事件时,
防抖设置事件延迟并在空闲时间去触发事件;
节流是利用定时器将事件隔一定的时间触发一次。
原文:https://www.cnblogs.com/LcxWeb/p/14153523.html