我有一个ajax搜索框,每个关键笔划都会转到服务器上,并返回搜索结果.
当用户快速键入时,我只想搜索最后一个条目,而不是在每一个关键的行程上搜索.否则个别结果会令人烦恼,整个过程都会减缓.
当用户快速键入时,我只想搜索最后一个条目,而不是在每一个关键的行程上搜索.否则个别结果会令人烦恼,整个过程都会减缓.
例如:如果用户快速键入“自由雕像”,我不想搜索“sta”,“stat”,“statu”等
我的jQuery代码的基础是:
$('#searchBox').keyup(function(){ if (this.value.length > 2) { $.post("remote.PHP",{'partial':this.value},function(data){ $("#gen_results").html(data); }); } }); <input id="searchBox" /> <div id="gen_results"></div>
解决方法
使用setTimeout或jQuery的
autocomplete plugin
var timer; $('#searchBox').keyup(function(){ if (this.value.length > 2) { if (timer){ clearTimeout(timer); } timer = setTimeout(function(){ $.post("remote.PHP",function(data){ $("#gen_results").html(data); }); },1000); } });