// 防抖  scroll事件滚动 搜索框 表单验证 浏览器缩放
// 防抖是指在事件触发n秒后再执行回调，如果在n秒内再次被触发，则重新计算时间。（就是在触发某个事件后，在下一次触发之前，中间的间隔时间如果超过设置的时间才会发送请求，一直触发就不会发送请求）
exports.debounce=(fn,delay=300)=>{
	let timer=null;
	return function(){
		if(timer) clearTimeout(timer);
		let that=this,args=arguments;
		timer=setTimeout(()=>fn.apply(that,args),delay)
	}
}

// 节流 DOM元素的拖拽功能实现 射击游戏类 计算鼠标移动的距离 监听scroll事件
// 节流是指如果持续触发某个事件，则每隔n秒执行一次。
exports.throttle=(fn,delay=100)=>{
	let start=Date.now();
	return function(){
		let that=this,args=arguments;
		let diff=Date.now()-start;
		if(diff > delay){
			fn.apply(that,args);
			start=Date.now();
		}
	}
}