当用户在输入框上输入东西的时候,下面自动显示出搜索结果来。但是我想的是当延迟一秒,判断用户还有没有继续输入或者删除的意愿再进行ajax调用模糊查询。。我该怎么写呢
我来个简易版。每次按下键盘,就设置一个定时器,如果用户再一次按下键盘,就清除上一次的定时器,并且重新设置一个。这样当最后用户没有再次按下键盘的时候,最后一个定时器不会被清除就会执行。
inputElement.onkeyup = function(){
var timer = null;
return function(){
timer && clearTimeout(timer);
timer = setTimeout(function(){
//你的代码
}, delay);
};
}
轮子专业户提醒你,如果你会redux,那么就用redux-saga来做这一个,且还能够处理竞态情况,比如,你延迟1s后查询,接着又输入又延迟1s继续查询,假设第一次查询没有第二次查询快,那么,saga可以处理掉第一次查询,将第二次查询的结果返回给你作为真正的查询结果。
中文链接:http://leonshi.com/redux-saga...
目前saga版本是v15,文档是v9,比较老了,但是可以用。
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
去抖,这种时候就要掏出代码了。这个就是一个。