/**
* 函数去抖
* 空闲控制 返回函数连续调用时, 空闲时间必须大于或等于 wait, fn 才会执行
* @param wait { number } 空闲时间, 单位毫秒
* @param fn {function} 请求关联函数,实际应用需要调用的函数
* @return {function} 返回客户调用函数
*/
function debounce(fn, wait){
var timeout;
return function () {
var ctx = this,
args = arguments;
clearTimeout(timeout);
timeout = setTimeout(function () {
fn.apply(ctx, args);
}, wait);
};
}
/**
* 函数节流
* 频率控制 返回函数连续调用时,fn 执行频率限定为 次 / wait
* @param wait {number} 延迟时间,单位毫秒
* @param fn {function} 请求关联函数,实际应用需要调用的函数
* @return {function} 返回客户调用函数
*/
function throttle(fn, wait) {
var last = 0;
return function () {
var curr = new Date();
if (curr - last > wait) {
fn.apply(this, arguments);
last = curr;
}
}
}
网友评论