频繁的onkeyup事件函数调用会导致AJAX响应速度极慢

时间:2012-12-16 03:21:56

标签: javascript jquery ajax

我正在使用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调用的次数,以改善响应时间,但没有任何成功。我一直试图解决这个问题好几天,并希望对此有任何帮助。非常感谢提前。

1 个答案:

答案 0 :(得分:0)

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