規定函數至少間隔多久執行。瀏覽器
function debounce(method, delay){
var timer = null;
return function(){
var context = this,args = arguments;
clearTimeout(timer);
timer = setTimeout(function(){
method.apply(context, args);
},delay);
}
}
document.getElementById('debounce').onclick = debounce(function(){console.log('click')},2000);複製代碼
規定函數在某時間段內最多執行一次bash
function throttle(method, delay){
var last = 0;
return function (){
var now = +new Date();
if(now - last > delay){
method.apply(this,arguments);
last = now;
}
}
}
document.getElementById('throttle').onclick = throttle(function(){console.log('click')},2000);複製代碼
函數節流:是確保函數特定的時間內至多執行一次。
函數防抖:是函數在特定的時間內不被再調用後執行。
app
https://blog.csdn.net/qq_37860930/article/details/83505547
函數
https://juejin.im/post/5b651dc15188251aa30c8669
post