1

我正在使用 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 调用的数量以提高响应时间,但没有任何成功。几天来我一直在尝试解决这个问题,并希望得到任何帮助。提前谢谢了。

4

1 回答 1

0

我的解决方案是为 mysql 查询设置一个 LIMIT,因为我不需要 100 个查询结果,但只需要少数,这导致 AJAX 显着提高了速度。

于 2012-12-20T16:45:21.200 回答