节流:防止频繁执行某函数,两次执行需要间隔时间(比如滚动)
防抖:防止多次发生,重复执行(比如按钮重复提交数据)
// 重点是使用闭包锁住变量的值
// 防抖
function debounce(fn, wait) {
var timer = null
return function() {
if(timer) clearTimeout(timer)
setTimeout(fn, wait)
}
}
// 节流
function throttle(fn, delay) {
var prev = Date.now()
return function() {
var context = this,
args = arguments,
now = Date.now();
if(now - prev >= delay) {
fn.apply(context, args)
prev = Date.now()
}
}
}
网友评论