2013-03-11 73 views
2

我一直在寻找不同的方式在我的web应用程序上实现即时文本搜索;目前它使用带有通配符的非常基本的SQL LIKE查询。数据库搜索 - 单个AJAX查询+ Javascript过滤器

我已经看过实现搜索的方法很多,但我从来没有见过任何人建议做到以下几点:

  1. 当用户类型,当查询获取到4或5个字符,执行数据库搜索。

  2. 将结果显示给用户,当他们继续输入时,只需使用Javascript来过滤结果,因此不再需要数据库调用。

这样也就永远只能是每次搜索一个数据库调用,如果用户进行一个错字,他们可以退格和Javascript将采取显示正确结果的照顾。

这种方法有什么缺点吗?

+0

你可以使用jquery自动完成! – sandip 2013-03-11 09:22:57

+1

在许多系统中,您可能需要执行此操作,但4到5个字符仍然会导致大量可能的行。但是在某些系统上它可能是有用的。就我个人而言,我搜索了每个字符输入的时间,但是在搜索之前使用了一个计时器,所以只有当用户停止输入时才会发生AJAX调用(半秒就足够了)。 – Kickstart 2013-03-11 09:39:41

回答

1

这似乎在理论上有效,但我个人更喜欢在搜索前按下输入或等待500毫秒的非活动状态。

可能会导致额外的数据库查询的一件事是,如果用户退出给定的时间间隔(在您的情况下是4个字符)。

但我想真正的缺点是额外的JS编码+仍然需要PHP编码。

+0

是的,我会给500毫秒和JavaScript过滤器的方法去看看我更喜欢。感谢您的回答:) – 2013-03-11 09:57:09

+0

非常欢迎您,如果我需要为最后一点的表现进行优化,我知道我今天从您那里学到了一些东西。它甚至不像谷歌那样做,尽管一些缓存似乎有效。 – 2013-03-11 10:23:17