问题描述
我已经为搜索框实现了反跳功能。但是在某些情况下,对发布请求的响应时间会长于反跳功能的等待时间,因此我得到了显示错误的响应。有比增加防抖等待时间更好的解决方案吗?
编辑:
这是我的尝试,使用异步功能:
Vue.component('autocomplete',{
template: '#autocomplete',data: function() {
return {
searching_array: [],timeout: null,}
},computed: {
searching: function() {
return this.searching_array.length > 0;
}
},methods: {
scheduleSearch: function() {
if(this.timeout) {
clearTimeout(this.timeout);
}
this.timeout = setTimeout(this.search,500);
},search: async function() {
/*...*/
this.searching_array.push(data.search);
await this.postRequest(/*...*/);
this.searching_array.shift();
}
}
在模板中,我具有带有v-on:keyup="scheduleSearch"
操作的输入字段。没有包含某些代码部分,因为这些部分与我的问题无关。在这些部分中,我添加了用于搜索服务器上数据库的内容。此外,this.postRequest(/*...*/)
作为promise
函数从服务器返回响应。
当计算出的searching
为true
时,我显示的是字符串Searching...
而不是结果。
我没有使用axios
,而是使用this.$http.
...
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)