Java 在瓦丁自动完成?
我是瓦丁的新手。如何对无法加载到内存中的大量数据进行自动完成(实际上,更像谷歌建议),而是对每个关键事件执行JPA查询。是否可以在文本字段或组合框中捕获关键事件?您可能会发现这很有用。我想这在6.5中得到了修正。如果您想检查,还有一个 你需要考虑这一点,尽管 字段值->json->VAADINservlet->服务(spring/ejb/pojo或其他)->JPA->查询->结果列表(最初可能很大) 每次按键都会返回到浏览器Java 在瓦丁自动完成?,java,gwt,jpa,autocomplete,vaadin,Java,Gwt,Jpa,Autocomplete,Vaadin,我是瓦丁的新手。如何对无法加载到内存中的大量数据进行自动完成(实际上,更像谷歌建议),而是对每个关键事件执行JPA查询。是否可以在文本字段或组合框中捕获关键事件?您可能会发现这很有用。我想这在6.5中得到了修正。如果您想检查,还有一个 你需要考虑这一点,尽管 字段值->json->VAADINservlet->服务(spring/ejb/pojo或其他)->JPA->查询->结果列表(最初可能很大) 每次按键都会返回到浏览器 想想最终用户的打字速度。当第一次击键的响应从服务器返回时,用户可能已经
想想最终用户的打字速度。当第一次击键的响应从服务器返回时,用户可能已经完成了整个单词。您可以查看Henrik Paul's,它是一个Vaadin附加组件,允许您以秒为单位设置客户端到服务器的延迟。从这一点开始,它的公共Java堆栈可以使流程尽可能平滑。缓存、JPA请求或其他。几秒钟的延迟至少会稍微减轻服务器端的负载。即时文本字段应该是您要查找的内容。请看一下采样器演示:
如果您不想编写自定义客户端小部件或包含其他附加组件,可以稍微调整Vaadin的组合框,使其从数据库加载建议。要实现这一目标,您基本上需要做三件事:
我更详细地描述了如何执行此操作。也许可以签出此插件: 附带: 服务器通信延迟,例如,等待用户完成键入n毫秒 类似“在此处键入查询”的占位符文本
查询服务器时输入的最小长度您可能只想在输入了3个左右的字母后(如果可能)启动自动完成功能,这样您就不会返回大量的列表。并且不向用户显示完整的建议集。只是一些关于自动完成的一般想法。