一个vue前后端分离的项目,功能是实现分页列表中的批处理,一共有两个CheckBox分别对应操作“全部数据”和“本页全选”(如下)。后端设计是把选中的数据id放进一个数组中传递调用A接口进行批处理,这点无异议,但是当用户选择“全部数据”的时候后端让先查询另外一个接口,取得所有数据的id后再调用A接口。我感觉“全部数据”选中只是一个标识表示要操作表中所有记录,额外绑定一个参数标识,不需要把所有的id先查询然后再传一遍,后端自己判断查询就可以啊,要是有1w条数据前端要传1w个id?感觉不合理啊,结果被后端以影响性能等各种理由拒绝。想问问大佬们这种情况合理的设计应该是怎样的?
请后端评估一下到底哪个更影响性能!推诿请常见,推诿得这么水的还是少。
不过话说回来,前端多调一个接口也不是啥难事。只要后端敢签字确认说那种方式可以有更好的性能,前端要做还真费不了多少事,就是怕数据量大的时候等返回数据等超时。
另外,还要看全选之后进行什么操作。如果是批量修改部分数据,那这个接口是需要跟后端协商好的。但是既然只需要 ID 列表,估计应该不是修改数据的操作,大概率是删除、移动之类的操作。这类操作给个命令+参数其实前后端都好处理。
对于后续处理,你可以问问后端:他们是不是想拿到 ID 列表然后遍历一个个去操作
update/delete where id = xx
,如果不用 ID,只需要update/delete
就好,都不需要遍历。