jQuery / AJAX预先输入/自动完成

时间:2010-04-28 11:32:02

标签: ajax jquery

我已经阅读了几篇讨论jQuery最佳自动完成插件的文章/问题/论坛。在尝试了几个好的之后,我发现了大多数的缺陷。

  1. 如果您正在查找国家/地区并输入“In”,则会显示几个国家/地区。 如果继续输入I-n-d-i-a,则会产生5个AJAX调用(参见http://www.freeimagehosting.net/uploads/6f1bcd69e1.png) 很自然,印度是In的一个子集,为什么再次打电话呢?我们需要简单地过滤检索到的列表客户端。 有人知道这样的实现吗?

  2. Jquery自动填充功能的状态是什么?我在StackOverflow上读到Jquery不再提供它了;但除了自动填充的链接外,Jquery网站还有一个“新”标记。

  3. 由于

2 个答案:

答案 0 :(得分:8)

您在 1。中撰写的观点可能是因为:

  • 搜索“In”shoudl会返回很多结果
  • 在服务器端,有一些限制,永远不会返回超过N个结果
  • 这意味着在客户端包含“In”的完整国家/地区列表
  • 这意味着在没有其他Ajax请求的情况下,无法获取(肯定)与“Ind”对应的列表。

经常使用的半解决方案是在按键后立即发送Ajax请求,但仅在100或200毫秒之后发送。

这样,如果用户快速键入“Indi”并在键入任何其他内容之前等待,则“Indi只会出现1个Ajax请求(并且“ In“,”Ind“)

答案 1 :(得分:3)

jQuery UI自动完成已添加到新版本1.8中,因此,就我在项目活动中看到的,它仍在开发中。有example使用客户端缓存来解决您解释的问题。您也可以使用已经提到的延迟选项。