使用ajax在输入位置时优化搜索结果?

时间:2012-01-27 12:01:38

标签: asp.net ajax database event-handling

我在用于进入城市的asp.net webform页面中有这个文本框。在输入一些文本时,它提供的建议就像facebook对匹配结果一样。

我尝试了这两种方法来实现它。

  1. 我首先使用onTextChanged事件和AJAX,发现只有当文本框失去焦点时它才有效。我想要一个解决方案在你输入时工作。使用它的好处是我可以使用数据库并且速度很快,因为在此过程中不会传输任何xml文件。
  2. 2.我使用ajax,客户端使用js。但问题是xml包含城市,有州,国家是一个巨大的30MB文件。所以,它是不​​可能使用它的,所以想到从这个大字母中制作出每个字母表的26个小xml文件,但它们仍然足够大,可以实际使用。所以,现在我打算使用26 * 26个文件,其中包含具有相同前两个字母的城市,但我认为它是无效的方式来做我想要的。

    有没有其他有效的方法来完成它? 如果可以的话,最好的方法是使用数据库。

1 个答案:

答案 0 :(得分:0)

  1. 您需要使用onkeypress和/或onkeyup事件。 您是否知道有免费的即插即用自动完成组件?例如http://jqueryui.com/demos/autocomplete/

  2. 使用JSON!它更加紧凑。您可能会节省30-40%的数据大小。 您是否知道您不需要为此传递整个数据集?您可以将其置于服务器上(例如,在数据库中,或者缓存在Web服务器上以便更快地访问和减少数据库流量),并让客户端根据它们键入的字符一次只提取一小组数据。 JQuery UI AutoComplete支持该功能。


  3. 如果您不能使用JQuery和JQuery UI(不希望这将是一个不可接受的答案),那么我很确定还有其他免费替代品,包括这个:http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/AutoComplete/AutoComplete.aspx