我认为我所描述的技术可能有一个名称,但我不知道它叫什么。因此,我的第一个问题是要知道这种技术的名称。
这里有一个例子:假设你正在网页上实现实时搜索。每次用户在搜索框中键入内容,你都会触发一个新的搜索查询,并尽可能频繁地更新结果。这是一件很愚蠢的事情,因为你会发送比实际需要更多的查询。每输入2-3个字母或最多每100毫秒发送一次请求可能就足够了。
因此,一种技术是安排在按下按键后尽快执行查询,并且如果仍有计划但未执行的查询,则取消它们,因为它们现在已经过时了。
更具体地说,是否有特定的模式或库可用于解决Java中的这个问题?
我必须在Swing应用程序中解决这个问题,我使用了ExecutorService,它返回ScheduledFutures,我可以取消它们。问题在于,我必须手动为我想要“缓冲”的每个方法调用创建一个Runnable,并跟踪每个Future以便取消它。
我相信我不是第一个实现这样东西的人,所以肯定有一个可重用的解决方案吧?可能在Spring中有注释和代理?
这里有一个例子:假设你正在网页上实现实时搜索。每次用户在搜索框中键入内容,你都会触发一个新的搜索查询,并尽可能频繁地更新结果。这是一件很愚蠢的事情,因为你会发送比实际需要更多的查询。每输入2-3个字母或最多每100毫秒发送一次请求可能就足够了。
因此,一种技术是安排在按下按键后尽快执行查询,并且如果仍有计划但未执行的查询,则取消它们,因为它们现在已经过时了。
更具体地说,是否有特定的模式或库可用于解决Java中的这个问题?
我必须在Swing应用程序中解决这个问题,我使用了ExecutorService,它返回ScheduledFutures,我可以取消它们。问题在于,我必须手动为我想要“缓冲”的每个方法调用创建一个Runnable,并跟踪每个Future以便取消它。
我相信我不是第一个实现这样东西的人,所以肯定有一个可重用的解决方案吧?可能在Spring中有注释和代理?