我正在使用JQuery的自动完成插件,但它并不快,而且与我的网站没有关系。我想要一个像www.hotels.com这样的自动完成功能。我怎样才能实现这种类型的自动完成?有插件吗?
答案 0 :(得分:2)
Hotels.com使用自定义JSON请求/响应。如果你打开萤火虫,你会看到拨出电话:
此调用会立即在keyup上触发,并返回JSON数据:
没有什么特别花哨的东西,只是一个高性能的服务器,具有准确的数据库搜索。 Javascript中没有自动完成功能。
答案 1 :(得分:1)
因此,您更希望使用下拉式过滤器而不是下拉式自动完成功能?例如。当你输入“foo”时,你想要列出“foobar”,“afooba”和“bazfoo”而不是像“foobar”和“foobaz”这样的首发比赛?
如果是这样,那么我可以建议Quickselect使用Quicksilver algo或Flexselect使用Liquidmetal算法。值得一提的是,我在大约一年前玩过它并决定继续使用最后一个,因为它可以更好地定制,以使其与其他jQuery插件兼容(例如Validator和qTip)。
答案 2 :(得分:0)
您喜欢www.hotels.com的内容是什么?您想将哪些数据投射到自动填充中?这些数据来自哪里?在考虑实施细节之前,您需要回答这些问题。
答案 3 :(得分:0)
好东西要花钱。在你正在做的这个特定的基准测试中,如果你看得足够近,你将能够看到hotels.com使用Yahoo JS框架和不同的自定义函数......
答案 4 :(得分:0)
自动完成工作的80%是在后端完成的。后端需要非常快速地返回查询响应。我怀疑jquery是不是你的问题。使用firebug的'net'面板来了解往返时间是多少,以及服务器延迟是多少。解决这个问题。其余的很容易。 FWIW,我很幸运使用GWT的建议箱直接进入oracle数据库(除了非常薄的直通之外,我放弃了大部分网络层,以获得我所寻求的响应能力)。在约50ms内回复用户