jQuery keypress事件等待0.5秒,用于另一个用户按键

我正在为我的网站开发一个实时搜索,我想用一些简单的jQuery减少一些不必要的请求(当然我有一个后端泛洪控制)。 我的搜索字段有一个keydown-event-listener。 如果val()。length> = 3,则此侦听器currenty仅触发php搜索function的ajax命令。

但现在我想要一个额外的条件。 因此,当长度> = 3时,如果用户正在执行另一次按键,我想等待约0.5秒左右。 如果他这样做,则不应该调用该函数,并且我希望监听器再等待0.5秒并再次等待更多用户输入,依此类推。 我如何实现这样的function?

 var timeout; $('#yousearchbox').on('keyup',function(){ //if you already have a timout, clear it if(timeout){ clearTimeout(timeout);} //start new time, to perform ajax stuff in 500ms timeout = setTimeout(function() { //your ajax stuff },500); })