我试图用php和jquery实现搜索框(搜索结果来自数据库)。我想要做的是当用户在搜索框中键入时,将进行查询以查找包含用户在搜索框中输入的关键字的数据。我遇到的问题是,我有这样的事情:php/jquery搜索框
有这样做的问题是,该功能retrieve_results()被调用每个用户完成时间过程的输入(,导致这就是关键是在那里)。因此,这可能会变得非常缓慢,因为如果用户输入一个有10个字符的单词,则连续调用retrieve_results()函数10次。另外,我应该提到在我的retrieve_results()函数中,我正在使用jQuery $ .ajax来获取结果。所以我的问题是以下几点:
我该怎么做才能让我的函数retrieve_results()不会在用户每次停止键入时执行(每次键都启动时)。我想保留这个功能,但我不希望用户点击“搜索”按钮或其他东西。我只是想我的retrieve_results()函数被调用,只有当用户完成输入所有关键词一次(不是每次用户输入一个字母或东西)
谢谢
非常感谢,你是男人,但问题,为什么我必须每次清除计时器? – user765368 2012-02-23 03:18:49
@ user765368如果现有“超时”功能正在运行,我们只清除超时。如果我们没有清除这个超时,那么您的搜索会针对每次按键触发,只会延迟1000毫秒。你可以试试它......在jsfiddle中,删除'if(timeout)...'代码并运行脚本。您会注意到每次按键将在1秒后触发搜索功能。 – 2012-02-23 04:58:18