Welcome toVigges Developer Community-Open, Learning,Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
300 views
in Technique[技术] by (71.8m points)

vue如何延迟事件的执行?

比如我有个多选框,每次勾选一次,都触发change事件。

这个change事件异步请求数据。请求到数据就刷新一次dom。

现在问题来了。假如我一个一个勾选,比如连续勾选了5个项目,那就发送了5次请求。这样就太耗资源了。
有什么好的办法吗


补充:

我刚看了百度搜索,百度搜索框,你输入一个东西,他会在下面列出搜索联想词。比如你在搜索框快速输入‘abc’这三个字母的时候,他实际上并不是每个字母都发送一次查询。但是你稍微缓慢的输入a、b、c这时候就发送三个查询了。


解决办法:

感觉不算难。

if(vm.is_run) return;
vm.is_run = true;
var t = setTimeout(function (){
    vm.is_run = false;
    console.log('执行了');
}, 1000);

好像这样会比较好一点:

var t;
clearTimeout(t)
t = setTimeout(function (){
    console.log('执行了');
}, 1000);

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

setTimeout啊...


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to Vigges Developer Community for programmer and developer-Open, Learning and Share
...