我的看法:
ns-input#filterName(type="text", v-model="filterName", @keyup="searchTimeOut()")
在我vue代码中:
getUsers() {
.
.
.
API.users.index(params).then(blabla);
.
.
.
},
searchTimeOut() {
let timeout = null;
clearTimeout(timeout);
// Make a new timeout set to go off in 800ms
timeout = setTimeout(() => {
this.getUsers();
console.log("hi")
}, 800);
},
我只想在我停止打字和800毫秒后调用getUsers()
一次。现在,我每次写信都调用getUsers()
。
2条答案
按热度按时间bqjvbblv1#
在清除间隔之前删除
this.timer
值。请改为执行以下操作:2lpgd9682#
有更好的解决办法!
去抖动是一种频繁限制调用耗时函数的技术,它将函数的执行延迟到指定时间,以避免不必要的CPU周期和API调用,并提高性能。
您可以访问此site,以获得此技术在JS中的可视化表示
要执行去抖:
1.在实用程序目录的helper.js中导出去抖动功能
1.在你的组件中,你必须导入去抖动函数并将其赋值给变量。我将在mounted()中进行赋值。
1.现在将脚本连接到DOM
因此,通过执行上述步骤,getUsers()仅在您停止键入后调用一次,延迟为800毫秒。