多条数据的跳转查看方案


前言

项目上遇到一个需求:
报表显示的结果(比如:个数34个)需要能够跳转到汇总页面。且汇总页面只显示34条数据。
一共有三个解决方案:

  • 传递该数据的坐标信息
  • 传递Id集合
  • 传递rediskey

一、传递该数据的坐标信息

1、方法
报表能查询出这个34,是有一个坐标的,把这个34的坐标返回(比如:公司,月份)返回,前端跳转时加上这个参数去汇总页面查询。
2、存在的问题
每个报表的查询逻辑都不一样,所以需要参数中还必须包含报表的信息,汇总页面的查询必须和报表的查询逻辑保持一致。这样如果后续有多个报表,汇总页面的查询会变得很复杂,不利于扩展。
对于复杂报表,这个查询不好写,而且查询也会比较慢。

二、传递ID集合

1、方法
直接返回这34个数据的id的Set,前端跳转时将这个set作为参数进行汇总页面查询。
2、存在的问题
GET请求的url有长度限制,ID集合特别大的话,查询时无法全部传给后端,导致查询失败。

三、传递rediskey

1、方法
将这个34个id存入缓存中,后端将缓存key返回前端,前端跳转时把这个key作为查询参数然后进行汇总页面查询。后端对key进行处理。
2、存在的问题
报表的每一次查询都会覆盖redis。如果你和其他人用同一个账号,你查询了报表,然后跳转到了汇总页面。这个时候其他人也查询了同一个报表,你在汇总页面就查不出来东西。
解决方案:

  • 对于执行过跳转查询的key,复制一份放进到另一个key-read的key中。查询的时候,先查key-read,再查key,都查不到报缓存已失效,请重新进行报表查询。但是这也没完全解决这个问题,其他没有进行跳转的数据你点了跳转还是查不出来。
  • 不进行覆盖,每次查询都生成新的key。但是这样redis的压力就比较大。

3、实现细节
key的设置:

  • 超时时间
  • xxx:账号信息:UUID(每个跳转数据需要一个uuid)

其他

GET请求的长度限制是由浏览器或服务器来确定的。一般情况下,GET请求的长度限制是2048个字符,也就是2KB。如果请求的URL超过了这个长度限制,服务器可能会拒绝处理请求或截断URL。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值