在input框输入的时候,当我们监听input事件的时候,由于input事件是一旦输入框内容发生改变就触发我们绑定的回调函数,在实际当中我们往往会根据输入框内容去发送一些请求,这样一旦改变就触发无疑是耗时的,而且影响性能,这个时候,我们就可以使用防抖动。实现的大概思路就是我们可以自定义隔多长时间来触发我们的处理操作(例如ajax请求数据等)
方案一
var timer = null
element.input = function () {
clearTimeout(timer) // 每次进来的时候都将之前的清除掉,如果还没到一秒的时候就将之前的清除掉,这样就不会触发之前setTimeout绑定的事件, 如果超过一秒,之前的事件就会被触发下次进来的时候同样清除之前的timer
timer = setTimeout(function () {
// 在这里进行我们的操作 这样就不会频繁的进行我们这里面的操作了
}, 1000)
}
方案二
import * as lodash from 'lodash';
export = lodash;
import { debounce } from '@alipay/bigfish/util/lodash';
const debounceInputChangess = debounce(handleSearchdimensionality, 500);