我们经常会遇到需要在输入内容后,直接根据输入的关键词获取想要的内容。(即刻的查询)
问题点:若是仅仅利用@input进行输入的检测,那么在输入一段话的过程中,会发送无数个请求,非常浪费。
解决办法:每次输入触发@input后,应该依靠定时器(如0.5秒后)去延后发送请求。
突破点:若没到设定的0.5秒,又再次输入了呢?因此我们需要在设定定时器前,先清空上一次的定时器。
// 输入检测:
desInput() {
// 上一次的timer还是null,则证明上一次输入设定的时间还没到
// 直接清除上一次的定时器,重新定时
if (this.timer !== null) {
clearTimeout(this.timer)
};
this.timer = setTimeout(() => {
//这里是发送的查询请求
}, 500)
}