Javascript 使用jquery进行搜索

Javascript 使用jquery进行搜索,javascript,jquery,Javascript,Jquery,我用js搜索我的网站 他们的代码可能看起来像: 有一个表单,当keyup事件发生时,它将向一个文件发送post,并将该文件中的数据检索到div的html中 但这会让你自己陷入困境。我发现“a”的例子大约有3000个结果。例如,花一秒钟发送邮件。所以我现在按“c”键将帖子发送到的文件是“ac”,有100个这样的结果需要0.3秒。 例如,当我按字母“a”到“c”0.2秒时,它应该在0.5秒时显示结果“ac”。然后0.5秒后,它是“a”的结果将“ac”改为“a” 那个么你们现在怎么办?当你们按下“c”

我用js搜索我的网站

他们的代码可能看起来像: 有一个表单,当keyup事件发生时,它将向一个文件发送post,并将该文件中的数据检索到div的html中

但这会让你自己陷入困境。我发现“a”的例子大约有3000个结果。例如,花一秒钟发送邮件。所以我现在按“c”键将帖子发送到的文件是“ac”,有100个这样的结果需要0.3秒。 例如,当我按字母“a”到“c”0.2秒时,它应该在0.5秒时显示结果“ac”。然后0.5秒后,它是“a”的结果将“ac”改为“a” 那个么你们现在怎么办?当你们按下“c”键时,它停止发送带有“a”值的帖子,而发送带有“ac”值的帖子


还有剧本:

<script>
$('#searchbox').keyup(function() {
 search();
});

function search() {
var keyword = $('#searchbox').val();
if (keyword != "") {
$('#result').html(loadingText);
$('#result').css('display', 'block');
$.post('/search/',{"keyword":keyword}, function(data){
if (data != "")
{
$('#result').html(data);
}
else
{
$('#result').html('');
$('#result').css('display', 'none');
}
});
}
else {
$('#result').html('');
$('#result').css('display', 'none');
}
}
</script>

$(“#搜索框”).keyup(函数(){
搜索();
});
函数搜索(){
var关键字=$(“#搜索框”).val();
如果(关键字!=“”){
$('#result').html(loadingText);
$('#result').css('display','block');
$.post('/search/',{“关键字”:关键字},函数(数据){
如果(数据!=“”)
{
$('#result').html(数据);
}
其他的
{
$('#result').html('');
$('#result').css('display','none');
}
});
}
否则{
$('#result').html('');
$('#result').css('display','none');
}
}
您可以尝试

var timer = null;

$("#text_box").keyup(function() {
  if(timer) {
    clearTimeout(timer);
  }

  timer = setTimeout(search, 1000);
});

我以前问过一个类似的问题。在发布问题之前,请始终在stackoverflow中进行搜索。

tks。我尝试设置超时并获得最佳结果。但是没有这个功能。这很难
// use to delay the callback execution
// so your search will be executed only you stop typing after 0.5(500 ms for example) second
var delay = (function(){
  var timer = 0;
  return function(callback, ms){
    clearTimeout(timer);
    timer = setTimeout(function() {
      callback();
    }, ms);
  }
}());

$('#searchbox').keyup(delay(search, 500));
var timer = null;

$("#text_box").keyup(function() {
  if(timer) {
    clearTimeout(timer);
  }

  timer = setTimeout(search, 1000);
});