采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
如果乘客退出再进入的时候重新计时,那么等到缓存删除,status返回0,那么重新进入之后乘客在create_order.vue页面的时间不久白等了吗?有没有什么获取时间的好方法,比如说倒计时这里的数据是从后端给前端的呢?如果要这样子做,那要怎么实现呢?
这个问题我权衡过利弊,最终还是选择了现在的方案。你仔细想想,如果乘客等待了1分钟没有司机接单,然后关闭了小程序,5分钟之后又打开了小程序,看看有没有司机接单。那么应该是从1分钟开始继续计时,还是从6分钟开始计时。理所应当应该继续从1分钟开始计时。但是为了能实现这个功能有多难,你可能想不到。首先小程序过阵子不用,就会被微信自动关闭,所以不可以用缓存记录定时时间。如果让后端记住乘客离开小程序的时间,势必要在小程序onClose()函数中提交Ajax请求。如果用户的手机突然司机了或者微信闪退了,根本不会触发这个回调函数,那么你怎么才能让后端记住这个退出时间?还有就是即便触发了这个回调函数,但是突然手机没信号了,Ajax发布出去怎么办?为了实现一个功能,反而要面对很多难以解决的问题,你会怎么取舍?
老师,针对这个同学的问题,我有个想法不知道可不可行,就是每次用户重新登录小程序的时候,不是会获取当前的订单吗,如果这个订单是待接单状态,则顺便从redis中获取该订单的剩余过期时间,然后这个时间-1分钟返回给前端,前端就根据这个时间去进行倒计时(比如说剩余过期时间是5分钟,那就5-1=4分钟倒计时开始倒数),您觉得这样可以吗?
登录后可查看更多问答,登录/注册
50000+代码,300+技术点,慕课网明星讲师为你私人订制
4.5k 15
642 10
665 10
425 10
735 9