function debounce(fn, delay, immediate){
var timeout,
args,
context,
timestamp,
result;
var later = function(){
var last = Date.now() - timestamp;
if(last < delay && last >= 0){
timeout = setTimeout(later, delay - last);
}else{
timeout = null;
if(!immediate){
result = fn.apply(context, args);
if(!timeout){
context = args = null;
}
}
}
}; return function(){
context = this;
args = arguments;
timestamp = Date.now();
console.log(timestamp);
var callNow = immediate && !timeout;
if(!timeout){
timeout = setTimeout(later, delay);
} if(callNow){
result = fn.apply(context, args);
context = args = null;
} return result
}
};function throttle(method , duration ,delay ){
var timer = null,
// 记录下开始执行函数的时间
begin = new Date();
return function(){
var context = this,
args = arguments,
// 记录下当前时间
current = new Date(); // 函数节流里的思路
clearTimeout(timer); // 记录下的两个时间相减再与duration进行比较
if(current-begin >= duration){
method.apply(context , args);
begin = current;
}else{
timer = setTimeout(function(){
method.apply(context , args);
} , delay);
}
}
}
window.onresize = throttle(function(){console.log('resize')},1000,500)以上就是函数节流与防抖的含义的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号