好的,所以我开始研究我的网站的搜索功能,然后我开始对其进行编码,并且我意识到如果有100个人在搜索某些内容时会有很多开销。同时。而且因为我的ajax可以被称为每个keyup
,这意味着对于那100个人来说,每次他们在搜索框中键入内容时,它都会运行一个查询,我很确定这个查询非常低效。
所以,我决定最好做一个cron作业并让它运行一个脚本,每隔10-20分钟运行并从我的数据库中取出所有行,并创建一个JSON文件。有了它,我的ajax调用现在将是一个包含所有已经预取的结果的文件。然后,我发现搜索匹配。
我想知道是否有更有效或更好的方法来做到这一点?
答案 0 :(得分:2)
我建议在每个按键之间为您的通话添加一个简单的延迟。
我使用250毫秒,因为这是按键之间的合理时间。
每按一次按键,启动计时器并在每次按键时重新启动 - 然后在计时器功能中调用。
//pseudo code
on key press - start timer function - pass in current letters
if key pressed - reset timer function - pass in current letters
key not pressed for 250ms - function runs to timer end - fire off ajax call.
这是效率,可用性和可维护性之间的最佳平衡 - 如果您的网站增长,您的JSON文件将很快变得无法管理(以及数据传输数量等)。
答案 1 :(得分:0)
加快auto_complete