我正在使用 AJAX 通过使用“LIKE”查询来查询数据库来生成搜索建议。当用户在输入字段中键入文本时,将返回结果。
我设置它的方式如下:
查询:
var timer;
$(".prod-name-input").keyup(function(){
var self = this;
clearTimeout(timer);
searchword = self.value;
timer = setTimeout(function(){
$(".smart-suggestions").load('invoice-get-data.php?searchword=' + self.value);
},300); //onkeyup event works with a 300 millisecond delay
});
问题是,如果我键入一个包含 6 个字符的单词,则至少需要几秒钟才能为完整的单词填充 AJAX 结果,似乎在用户之前多次调用 AJAX 函数完成在文本字段中输入一个单词(由于 onkeyup 事件)。我在 mySQL 查询上使用了 var_dump 来尝试查看发生了什么,它表明一旦查询了完整的搜索词,这通常太慢了,并且使用我的方法需要几秒钟,结果就会返回几乎是瞬间,
我的目标是让搜索建议几乎立即出现,避免我现在的极度滞后,因此只要用户在输入字段中输入一些文本,搜索建议就会出现。我试图仔细控制 ajax 调用的数量以提高响应时间,但没有任何成功。几天来我一直在尝试解决这个问题,并希望得到任何帮助。提前谢谢了。