总结页面显示因传输数据量大出现卡顿现象的解决办法。
一:list列表页面,仅需要展示。
1.最好显示那些字段,就查询哪些字段;通常仅查询部分字段比查询所有字段要快。这种可以提高查询效率,也可以提高数据传输速度。
2.如果不能做到只查询部分字段,必须查询全部字段的情况下,那就对返回页面的数据做处理,可以将要显示的部分数据取出以json格式返回。这种可以提高传输速度。
比如,
class User{
String pk;
String name;
Department department;
}
如果有的user数据的department有值,有的user的department无值。使用hql查询select u.pk,u.department from User u时department值为空的user就会查不出来(因为表inner join的关系),而又必须显示department中的某些属性值。如果不写外连接来查询数据的话就会出现第二种情况(自己还不知道该怎么写外连接……)。
二:编辑页面,既需要展示,也需要修改后保存。
1.展示哪些字段查询哪些字段,保存时仅传输修改后的字段。
2.对于查询整个对象的页面,可以按照对象的结构使用json格式封装需要展示的字段,返回给页面。
按照对象的结构封装有一个好处,即保存时后台接收可以使用@RequestBody User entity获取而不必单独处理页面上的每个字段。
当然也可以在后台以json字符串接收然后封装成对象。
后续有新想法继续更新……