我有一个非常大的术语列表,可在自动完成框中使用。我一直在考虑如何 trim 它们的几种不同方案,但我还没有想出任何好的方案。
基本上,结构与唱片公司非常相似 -
- 艺术家有专辑 专辑有歌曲
- 单曲可能很受欢迎,专辑大多是其基础歌曲受欢迎程度的总和
- 专辑中的歌曲数量也存在很大差异 - 因此,如果专辑有数百首歌曲,则很可能有人想要搜索它,而可能性则较小 如果歌曲较少
- 随着自动填充变得更加具体(更多字母),我希望显示不太可能的术语
我在想这样的事情:
Apple 10
Banana 10
Crab 20
Diner 30
Dish 20
Daily 10
Diver 20
Dice 10
如果这是专辑列表以及我分配给它们的“分数”,我只需根据我显示的列表的长度(例如 3)选择列表,然后按分数 - 我点击“上面的D”,出现“Diner”、“Dish”和“Diver”,然后“i”就变成“Diner”、“Dish”和“Diver”。
是否有特定的算法可以做到这一点?或者为此构建 AJAX 自动完成器?我目前正在使用 Prototype/Scriptaculous,但我似乎无法正确使用它。
最佳答案
我刚刚发布了server-side autocomplete implementation在谷歌代码上。该项目包括一个可以集成到现有应用程序中的 java 库和一个独立的 HTTP AJAX 自动完成服务器。踢轮胎!
关于javascript - 减少自动完成术语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1944461/