迭代中随机数问题及处理

项目迭代需求中有这么一条,在首页中有一个 今日任务 的界面,今日任务对于所有用户来说是唯一的,当 今日任务 完成后会变成随机任务,而在随机任务当中又有可以刷新的按钮。


在原有程序中,今日任务是在首页中json文件获取,然后向任务详情页发送一个taskId,然后通过taskId获取任务详情页需要的相关数据。


但在新的需求中,对于随机数如何获取,是在前端还是在后端获取,我与后端争论了起来。
由于后端并不需要纪录有关随机数的相关字段,我想的随机数从前端生成,通过判断今日任务的状态是否完成,如果完成则向详情页传递过去一个随机数,如果没有完成加载接口中的数据。在详情页刷新中也是如此,生成随机数然后refresh当前界面。


可是这样有一个问题,在任务记录表中并不是连贯的数据(有些数据已被被删除),并且在数据库表日后更新后获取数据仍然是当前的随机值,要想更新只能更新当前的app版本。


后端则认为服务器的产生在服务端。由服务器判断完成状态然后传递taskId,然后第二个界面始终加载taskId,不需要做任何改动。但是在第二个界面刷新中无法完成,服务端想要增加新的接口专门用来刷新使用,传递值为完成状态,然后返回详情页所有的数据。


但是这种方法是行不通的,在之前版本中很多复用刀详情页的地方,若是新的接口会使得之前的部分工作无法进行,若是判断数据再采用哪个接口进行大大增加了前端和后端的工作量。但是随机数在后端产生也有好处,就是后端可以从表中读取一个数,并且能够更新新的数据,这个在前端无法办到。


在讨论之后,我们得出一个好的解决方案,保持了两个接口的内容不变。客户端判断任务是否为完成还是未完成的状态,若是完成则在到详情页发送taskId=-1,否则发送正常的taskId。在详情页接口中,如果受到的是-1服务端会生成一个随机数然后返回里面的数据,否则返回taskId里面的数据。在点击刷新按钮时也会将taskId=-1然后refresh当前界面,这样在两端所做的工作量都不是很大,又能很好的解决上面的问题。


项目迭代真的是件有意思的事情,既要在原有的功能上做更多的扩展,又要尽可能的使用原有的逻辑。在解决问题上,总能遇到奇葩且又很有趣的答案。
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值