earthworm
earthworm copied to clipboard
实现分享图显示通关时长
实现思路
在开始答题的时候记录一个开始时间戳 在弹出结束面板的时候基于当前的时间戳 - 开始时间戳 = 总用时
why
让大家有个竞争感和炫耀感
“你看我用时那么短 厉害吧”
“我不服 你等着 看我比你用时还要短” [旺柴]
如果刷题中途,浏览器“意外”关闭,时间怎么计算?
如果刷题中途,浏览器“意外”关闭,时间怎么计算?
感觉是不是可以在刷题页面设计一个类似 qwerty 的工具栏显示,如
不过确实,遇到浏览器意外关闭或用户主动关闭的情况(比如切换课程)也需要考虑一下怎么去措施规避异常,有个方案,是不是可以不等结束才计算?而是使用定时器来记录用户正常输入的时间,监听用户长时间(30s)还没有任何输入,则暂停计时,这样就算主动关闭或者异常关闭也不会被记录断开的时间
至于有没有更好的方案,还有如果用户主动切换课程时又该如何处理,感觉大家可以讨论一下 🤔
如此说来,应该是有 3 种异常情况需要处理
- 用户主动关闭,离开作答页面,例如切换到主页或者课程列表页
- 长时间未输入
- 直接关闭浏览器
针对这 3 种情况,分别
- onUnmounted 中执行触发,将结束时间存储到 course-history 表中
- 长时间不输入就停止计时,或是就让时间继续跑下去 (ps:你看着时间流逝不着急嘛)
- 监听一下 onbeforeunload 事件,存储结束时间