接上一篇文章,做了个搜索框
做完后准备总不能一直触发事件,做一个防抖处理,思路大概是这样的,无论她怎么输入都会在输入停止后的0.5秒后触发事件,中间但凡不足0.5秒就重新记时,
获取数据的方法叫getSearchInfo(value),
防抖的方法:
throttle(value,wait = 500){
let _that = this;
if(timeout) clearTimeout(timeout); // 如果timeout存在值,则清除timeout
timeout = setTimeout(() => {
_that.getSearchInfo(value)
timeout = undefined;
}, wait);
},
timeout = undefined;
因为时计时器所以this需要在外面声明,
注意!!方法里面的timeout要声明在外面作为全局变量,不然的话效果会变成每一次操作都0.5秒执行一次(),而不会等操作停止后的0.5秒执行,失去了防抖的作用。