- 前言
- 节流是什么
- 节流函数
1、前言
节流和防抖用来处理一些频繁的事件触发
onclick,keyup,keydown等。如用户不断点击提交表单等操作
window的resize、scroll等
2、节流是什么
用户第一次点击,会立即执行函数,此时再有点击不会执行函数,直到函数执行完成后,接收到用户再次点击会再次执行函数(节流执行第一次的请求,防抖执行最后一次请求)
3、节流函数
function throttle(func, wait) {
let flag = true
return function () {
var that = this
var arg = arguments // argumentsz对象只能在函数内使用,是传递给函数的参数,是一个类数组对象,有length属性
if (flag) {
flag = false
const timer = setInterval(() => {
func.call(that, arg)
clearInterval(timer)
flag = true
}, wait)
}
}
}
function callBack(e) {
console.log(e)
console.log(this) // this指向调用函数的对象
}
var btn = document.getElementById('btn')
btn.onclick = throttle(callBack, 1000)