var lastTime = 0;
//func 执行的方法,time两次点击中间间隔的时间
function throttle(func,time){
var date = time?time:1000
function throttleFunc() {
var context = this;
var args = arguments;
var nowTime = new Date().getTime()
console.log(lastTime)
if(nowTime-lastTime>date){
func.apply(context,args)
lastTime = nowTime
}
}
return throttleFunc()
}
function ajax(){
console.log(11)
}
执行
throttle(ajax,10000)
原理:
得到当前时间(nowTime) 减去最后一次执行时间(lastTime 第一次是0) 执行间隔时间data 默认1000毫秒,可以自己设置
执行完成之后lastTime = nowTime 最后一次执行时间就会是当前时间。再次执行时 再次拿到当前时间的时候减去最后一次时间(上一次执行时间),对比执行间隔时间。 来进行节流