防抖(连续输入搜索)
重复点击----重新计时
理解 : 触发事件n秒后执行函数内容,如果再n秒内又触发事件,则重新计时
var timer
function clickAdd(){
if(timer){
clearTimeout(timer)
timer = setTimeout(function(){
console.log(1)
},1000)
}else{
timer = setTimeout(function(){
console.log(1)
},1000)
}
}
节流(提交)
重复点击----不起作用
理解 : 连续触发事件在n秒内只执行一次
var timer
function clickAdd(){
if(!timer){
timer = setTimeout(function(){
console.log(1)
},1000)
}
}
防抖实例
//lodash---输入进行fetchUser搜索数据
this.fetchUser = debounce(this.fetchUser, 800);
<Select
mode="multiple"
labelInValue
value={value1}
placeholder="请选择设计者"
notFoundContent={fetching ? <Spin size="small" /> : null}
filterOption={false}
onSearch={this.fetchUser}
onChange={this.handleChange}
style={{ width: '100%' }}
>
{data1.map(d => (
<Option key={d.id}>{d.name}</Option>
))}
</Select>
节流
提交请求
博客地址