asp.net - 如何创建自动提示以与谷歌搜索或实时搜索一样快地获取关键字

标签 asp.net javascript autocomplete

我正在我的网站搜索框中创建自动建议功能,每次用户按下一个新键时,javascript 调用服务器端的 web 服务以从数据库中获取 10 个最相关的关键字并再次提供给 javascript,然后 javascript填充搜索自动建议列表。

我的功能并不太慢,但与 live.com 或 google.com 的速度相比非常慢,我对它们进行了测试,我真的觉得它们是从我的 PC 而不是从他们的服务器获取关键字。

他们怎么这么快的获取关键词,确定他们有我关键词的百万倍?
有这么著名的风格吗?
同样使用我的 Firebug ,我发现他们没有调用网络服务“可能正在以我不知道的方式调用”,但我在 Net 选项卡中发现正在发生新的获取。

最佳答案

不确定你在看哪里,但肯定是在 live.com 上,我收到了对每个字母的请求:

Firbug Net Console - AutoComplete

如您所见,通过网络返回的信息很少 - 500B - 这就是您的目标 - 一种精简的 Web 服务,可返回显示给用户所需的最少信息。

然后最重要的是,正如其他人所说,缓存以前的响应等。

这并不是说结果通常不是按字母顺序排列的,因此如果您不显示排序标准,您可以按照“现在的东西比以后完全准确的东西更好”的原则工作。

关于asp.net - 如何创建自动提示以与谷歌搜索或实时搜索一样快地获取关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/774492/

相关文章:

autocomplete - 为什么使用带有单选按钮的自动完成功能?

java - 如何在 session 超时后使 Wicket 中的自动完成文本字段起作用

asp.net - VS 2013 ASP.NET调试时无法修改代码

c# - 将 mm/dd/yyyy 转换为 JsonDate 格式

javascript - 你能在 JavaScript 字符串插值中执行三元表达式吗?

javascript - 猜颜色游戏。猜测正确后如何停止循环

javascript - c3 图表中的多线标签

asp.net - 如何在asp.net中获取gridview中的复选框值

c# - 不能定义没有 PK 的表

emacs - 在 hippie-expand 中模拟 dabbrev-expand,限制为匹配缓冲区