在工作中遇到这样的情况,使用DataTable填充数据(场景不相同):
假设id、姓名、性别信息做一次查询就可以得到,而成绩需要根据id去分别查询(甚至需要去请求网络接口获取数据),消耗的时间就会非常多,在即时性要求比较高的项目中甚至都是不可接受的。
我的解决方法是DataTable先加载基本信息(id、姓名、性别),完成后再异步去加载其余数据。
后台接口:
@RequestMapping("/student/basicInfo")
public Map<String, List<StudentVO>> getStudentsBasicInfo(@RequestParam("classID") Long classID) {
// 获取基本信息(快)
// List<StudentVO> studentVOList = ...
result.put("data", studentVOList);
return result;
}
@RequestMapping("/student/moreInfo")
public Map<String, List<StudentVO>> getStudentsMoreInfo(@RequestParam("classID") Long clusterID) {
// 获取其余信息(慢)
// List<StudentVO> studentVOList = ...
result.put(<