使用ajax自动完成文本框的策略

时间:2009-06-30 15:31:29

标签: jquery ajax autocomplete

youtube,google,facebook甚至Stackoverflow如何通过自动编辑框实现卓越性能?这真的很快,感觉就像是一个本地搜索,即使在后台他们可能正在调用数据库。 (想象一下数据库调用所需的所有资源!)

是关于服务器和带宽的全部吗?

使用这项技术最大限度地提高性能的策略是什么?寻找如 1)在用户输入至少3个字母后启动ajax回调 2)缓存DB结果?如果是这样的话? 3)预加载数据?如果是这样的话 4)等...

如果在使用asp.net mvc和sql server 2008时这很重要。

3 个答案:

答案 0 :(得分:2)

有些查询自然会变得更快(并且可以使用客户端缓存)。这适用于任何查询,当“关键字”增长时,结果始终是先前结果的子集。

e.g。假设您正在寻找电子邮件联系人...(8,000个联系人)

Typed   | Results | Search | Cached?
  "j"   |  2,500  | server | server
  "je"  |    847  | server | server (+ client?)
  "jef" |    192  | server | server + client
  "jeff"|     23  | client | client

您必须确定缓存结果的最佳时间/地点,但是一旦设置了“小”(例如小于250),您也可以在客户端上搜索缓存。

答案 1 :(得分:1)

尝试并使用Firebug来查看谷歌回调会发生什么,这是令人印象深刻和解释性的。

答案 2 :(得分:0)

仅将其用于可以缓存的查询(查找可用于服务器端语言/体系结构和数据库的DB缓存技术(例如memcached)...没有任何MS技术经验)很快(例如,当搜索文章时只搜索标题而不是整个文本......这就是高级搜索的用途)。如果可能,您也应该为这些调用优化数据库(索引)。当然限制结果(我的猜测是传输所有数据的时间(请求响应)比数据库查询本身更长。)