【发布时间】:2012-12-21 00:45:21
【问题描述】:
我正在使用 AJAX 通过使用“LIKE”查询来查询数据库来生成搜索建议。用户在输入字段中键入文本时会返回结果。
我的设置方式如下:
JQuery:
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 调用的数量以提高响应时间,但没有任何成功。几天来我一直在尝试解决这个问题,并希望得到任何帮助。非常感谢。
【问题讨论】:
标签: javascript jquery ajax