Spring MVC-JSON响应-如何防止

Spring MVC-JSON响应-如何防止,json,jquery,spring-mvc,Json,Jquery,Spring Mvc,我有一个前瞻表单字段,它根据名字和姓氏表单字段搜索人员记录。。字段由Jquery发布,人员列表作为JSON返回,结果显示为表。为每个键控事件提交Post请求。但我对此有意见 比如说,用户在firstname字段中输入了“a”。请求作为ajax调用提交。然后用户在字段中输入“b”。现在,请求再次以“ab”作为名字提交。问题是,“ab”的结果数量较少,因此结果会立即显示。由于“a”有更多的结果,因此需要一些时间来处理和构建结果表,一旦完成了表的构建,它将替换“ab”的现有表。这不是我想要的行为,因为

我有一个前瞻表单字段,它根据名字和姓氏表单字段搜索人员记录。。字段由Jquery发布,人员列表作为JSON返回,结果显示为表。为每个键控事件提交Post请求。但我对此有意见

比如说,用户在firstname字段中输入了“a”。请求作为ajax调用提交。然后用户在字段中输入“b”。现在,请求再次以“ab”作为名字提交。问题是,“ab”的结果数量较少,因此结果会立即显示。由于“a”有更多的结果,因此需要一些时间来处理和构建结果表,一旦完成了表的构建,它将替换“ab”的现有表。这不是我想要的行为,因为“a”是第一个请求,“ab”是最新的请求,不应该替换它。那么,我如何防止旧请求的结果替换新结果呢。提前谢谢

--更新--

控制器方法类似于

 public @ResponseBody List<PSPerson> getPersonsWithNames(
        @RequestParam("firstName") String firstName, @RequestParam("lastName") String lastName) 
{

    Map<String, String> attrMap = new HashMap<String, String>();

    attrMap.put("firstName", firstName);
    attrMap.put("lastName", lastName);

    return personService.getPeople(attrMap);
}

也许您可以向返回的Json值添加时间戳。在jquery中,将收到的最新时间戳与实际时间戳进行比较。

您在web上看到的许多前瞻/自动完成表单都有一个字符阈值计数,例如,在PengoWorks jquery自动完成中,它是minChars。 如果您使用的是jQuery插件,那么还可以使用delay选项指定发送AJAX请求之前等待的毫秒数

如果您使用典型的minChars值(如3)加上合理的延迟值(可能为100ms),您可能已经将搜索空间缩小到足以避免一个结果集超过另一个结果集的问题

您可以尝试使用这些值


编辑:相同的选项在中可用-它们被称为minLength和delay。

感谢华法拉的回复。。JSON响应是Person对象的列表。如何向该响应添加额外变量?