应用场景
由于事件频繁被触发,因而频繁执行DOM操作、资源加载等重行为,导致UI停顿甚至浏览器崩溃。
简单用法
/**
2 * 空闲控制 返回函数连续调用时,空闲时间必须大于或等于 idle,action 才会执行
3 * @param fn {Function} 相关执行函数
4 * @param delay {Number} 延迟时间,也就是阈值,单位是毫秒
5 * @return {function} 返回一个“去弹跳”了的函数
6 */
7 debounce(fn,delay)
例子
let validateNameRepeat = async (rule, value, callback) => {
try {
let res = await valiSchoolName({
option:this.params.option,
name: this.form.name,
id: this.params.id})
if (res.code === 200){
if(res.result === "true"){
callback()
}
if(res.result === "false"){
callback(new Error('当前学校名称已经存在,请修改'));
}
} else {
callback(new Error('服务器不能验证学校名称'));
}
} catch (error) {
callback(new Error('验证学校名称异常'));
}
};
validateNameRepeat = debounce(validateNameRepeat,300,this)