我正在为我的网站开发一个实时搜索,我想用一些简单的jQuery来减少一些不必要的请求(当然我有一个后端洪水控制)。我的搜索字段有一个keydown-event-listener。這個監聽器目前只在以下情況下,才會啟動 PHP search-function 的 ajax 指令。val().length
是>=3。
但是现在我想要一个额外的条件。所以当长度为>=3时,我想等待大约0.5s左右,如果用户正在执行另一个按键。如果他这样做了,函数就不应该被调用,我想让监听器再等待0.5s,再等待更多的用户输入,以此类推。如何实现这样的功能?
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);
})