请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

这里的那个乘客退出,再进入的时候重新计时,这里的处理感觉有点问题

如果乘客退出再进入的时候重新计时,那么等到缓存删除,status返回0,那么重新进入之后乘客在create_order.vue页面的时间不久白等了吗?有没有什么获取时间的好方法,比如说倒计时这里的数据是从后端给前端的呢?如果要这样子做,那要怎么实现呢?

正在回答 回答被采纳积分+3

1回答

神思者 2023-01-26 19:00:44

这个问题我权衡过利弊,最终还是选择了现在的方案。你仔细想想,如果乘客等待了1分钟没有司机接单,然后关闭了小程序,5分钟之后又打开了小程序,看看有没有司机接单。那么应该是从1分钟开始继续计时,还是从6分钟开始计时。理所应当应该继续从1分钟开始计时。但是为了能实现这个功能有多难,你可能想不到。首先小程序过阵子不用,就会被微信自动关闭,所以不可以用缓存记录定时时间。如果让后端记住乘客离开小程序的时间,势必要在小程序onClose()函数中提交Ajax请求。如果用户的手机突然司机了或者微信闪退了,根本不会触发这个回调函数,那么你怎么才能让后端记住这个退出时间?还有就是即便触发了这个回调函数,但是突然手机没信号了,Ajax发布出去怎么办?为了实现一个功能,反而要面对很多难以解决的问题,你会怎么取舍?

1 回复 有任何疑惑可以回复我~
  • 老师,针对这个同学的问题,我有个想法不知道可不可行,就是每次用户重新登录小程序的时候,不是会获取当前的订单吗,如果这个订单是待接单状态,则顺便从redis中获取该订单的剩余过期时间,然后这个时间-1分钟返回给前端,前端就根据这个时间去进行倒计时(比如说剩余过期时间是5分钟,那就5-1=4分钟倒计时开始倒数),您觉得这样可以吗?
    回复 有任何疑惑可以回复我~ 2023-10-11 09:56:55
问题已解决,确定采纳
还有疑问,暂不采纳
多端全栈项目实战,大型商业级代驾业务全流程落地
  • 参与学习       578    人
  • 解答问题       402    个

50000+代码,300+技术点,慕课网明星讲师为你私人订制

了解课程
意见反馈 帮助中心 APP下载
官方微信