最具性能的移动野生动物搜索技术

时间:2011-08-31 03:24:41

标签: performance mobile safari livesearch

我正在构建一个针对webkit的移动Web应用程序。我要求对大约5000个用户的数据库进行实时搜索(在按键上)。

我尝试了很多不同的技术:

  1. 在页面加载时,进行AJAX调用,该调用加载所有5000个用户的内存中表示,并在客户端上查询它们。我尝试发送JSON,它被证明是太大了,还有一个自定义分隔的字符串,然后使用split()进行解析。这样做更好,但最终对这一组用户的搜索速度很慢。
  2. 我尝试使用传统的AJAX调用,它会根据查询返回用户,也使用自定义分隔字符串技术。这样做更好,但我被迫调整它,以便只使用至少3个字符执行搜索。这不是最佳的,因为我希望能够在1个字符后开始过滤。我还可以限制调用,以便在某个阈值内的每次击键都不会触发请求。这可能对性能有所帮助,但我宁愿不必摆弄那种东西。
  3. 如果你尝试他们的朋友搜索,Facebook手机会做得很好。搜索瞬间发生,并在1个字符后触发。

    我的问题是,有没有人对移动应用的更快的实时搜索有任何建议?我应该看看localStorage吗?这可靠,可行吗?

1 个答案:

答案 0 :(得分:0)

你有什么理由不能使用二进制搜索吗?你正在寻找的名字应该是一个块。如果您想要名字和姓氏搜索,您可以创建按姓氏排序的数据的第二个副本,并查看两个集合。

解决此类问题的一些有用但更复杂的数据结构包括:

http://en.wikipedia.org/wiki/Directed_acyclic_word_graph http://en.wikipedia.org/wiki/Trie