我有一个用于搜索的输入。用户开始键入并在键入时,表中显示了与键入的字符串相关的许多结果。
我的HTML:
<input type="text" id="searchinput" onkeyup="Search()" placeholder="Search...">
我的Javascript函数:
function Search() {
var value = $("#searchinput").val().toLowerCase().trim();
if (value == '') {
$("div#results").html('');
} else {
$.ajax({
type: 'post',
url: 'getresults.php',
data: {
values: value
},
success: function(response) {
$("div#results").html(response);
}
});
}
}
如果用户快速键入搜索词,则用户将获得所需的结果。如果你输入的速度很慢,那么它就会得到结果,几秒钟之后,就像它会断开并显示其他结果(可能来自之前按过的键?)。
有任何想法吗?
您可以尝试进行去抖动,这只会在250ms不活动后触发请求。
$.debounce(250, function(e) {
console.log("It works!");
})
这是我引用的去抖功能 http://benalman.com/code/projects/jquery-throttle-debounce/jquery.ba-throttle-debounce.js