在Google搜索框中,当用户键入部分字词时,与弹出字词部分匹配的字词列表和用户可以从中选择一个。事实证明这很方便。请参阅附件:
这是通过浏览器的缓存完成的吗?我想是的,因为我在我的本地机器上用我自己的实验应用程序观察到了这一点。请参阅以下附件:
当我输入字母' a'时会弹出三个单词,但我的应用程序非常简单,前面只有一个h:表单,后面有很多后端来支持这一点。所以,我认为这三个词必须由浏览器的缓存建议,因为我之前输入过它们。有人可以证实这一点吗?
现在,如果我想要类似于建议的东西,但不同。建议的术语不是通过浏览器的缓存建议的,而是通过后端bean提供的。
<h:form id="wordForm">
<h:inputText id="word" value="#{wordController.word}" />
<h:commandButton id="search" value="search!"
action="#{wordController.search}" />
</h:form>
例如,如果我有一个后端bean来保存地图:
@ApplicationScoped
class WordSuggestion {
...
private Map<String, String> wordSuggestions;
public void initialize() {
wordSuggestions.put("book", "books");
wordSuggestions.put("book", "booking");
wordSuggestions.put("book", "booked");
}
}
用户输入完整的单词&#34; book&#34;后,我想要3个候选人&#34;书籍&#34;,&#34;预订&#34;和&#34;预订&#34;以与上述建议类似的方式提出建议。一个区别是,对于浏览器缓存建议(如果是),只要用户键入一个字符,建议就开始;但是,在我的情况下,我希望用户输入完整的单词,即&#34; book&#34;,然后开始建议。最后,我也希望一旦用户开始输入,建议就会开始,但我觉得这可能是第一种类型。
如何在我的搜索框中实现此目的?我正在使用JEE,JSF,JavaScript,HTML。