一、防抖节流
1、防抖
在固定的时间内没有触发事件,会在固定时间结束后触发,如果固定时间内触发事件了,会在延长固定时间再触发
防抖主要利用定时器实现
用实例的话,可以用电梯的升降,遇到人进入会有一段时间的停止,当再次有人进入延迟会延长。
//用定时器实现防抖
function debounce(func,wait) {
var timer=null;
return function() {
//保存当前调用的dom对象
var _this=this;
//保存事件对象
var args=arguments;
clearTimeout(timer)
timer=setTimeout(function() {
func.apply(_this,args)
},wait)
}
}
2、节流
无论在固定时间内是否有事件触发,都会按照固定时间规律触发
节流的话,用实例讲的话用王者荣耀里的技能键来讲,比较通俗易懂😊,在规定的时间你执行,在此期间点击,不进行触发!
具体实现有两种方法
第一种:时间戳
//时间戳版本实现节流
function throttle(func,wait) {
//定义初始时间
var oldTime=0;
return function() {
var _this=this;
var args=arguments;