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) 0
0
相关文章
javascript正则表达式如何使用?_掌握javascript正则匹配方法【教程】
JavaScript中的函数如何定义_有哪些函数类型【教程】
javascript如何操作CSS_如何动态地修改元素的样式【教程】
javascript webgl是什么_怎样在浏览器中渲染3d图形【教程】
javascript中的class语法怎样使用【教程】
本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门AI工具
相关专题
2026赚钱平台入口大全
2026年最新赚钱平台入口汇总,涵盖任务众包、内容创作、电商运营、技能变现等多类正规渠道,助你轻松开启副业增收之路。阅读专题下面的文章了解更多详细内容。
76
2026.01.31
无需付费的漫画app大全
想找真正免费又无套路的漫画App?本合集精选多款永久免费、资源丰富、无广告干扰的优质漫画应用,涵盖国漫、日漫、韩漫及经典老番,满足各类阅读需求。阅读专题下面的文章了解更多详细内容。
67
2026.01.31
漫画免费在线观看地址大全
想找免费又资源丰富的漫画网站?本合集精选2025-2026年热门平台,涵盖国漫、日漫、韩漫等多类型作品,支持高清流畅阅读与离线缓存。阅读专题下面的文章了解更多详细内容。
19
2026.01.31
热门下载
相关下载
精品课程
相关推荐
/
热门推荐
/
最新课程
最新文章






