关于答题小程序倒计时结束如何交互的设计分析
~
之所以写这篇文章,是因为如下的场景出现造成一些目前的问题,对这些问题而进行的一系列思考
~
图1
~
图2
~
在目前的超时场景里面,提示了用户超时之后,在逻辑层面会自动将该条答题记录写入数据库,没有跟用户确认是否交卷
~
同时存在的一个问题是,
倒计时在用户离开页面的时候没有清理掉,也就是说如果用户暂时离开,倒计时会默认执行然后交卷,这个逻辑就比较严重了
用户可能有事临时离开,但是再回来发现已经交卷这是不被允许的
结果就导致,我今天不断清理得分为0的数据
~
后面我想应该从以下几方面来改进
1、倒计时结束,给用户交卷确认的弹窗,用户同意那么交卷;
2、用户离开页面时,清理计时器,这里对离开的定义要好好斟酌,可以是onhide,也可以是onUnload;
所以要对倒计时采用服务端时间进行计时,每次用户切回小程序要重新开始倒计时
这个地方略微复杂一些
3、其他优化
~
‘用户离开页面时,清理计时器,这里对离开的定义要好好斟酌,可以是onhide,也可以是onUnload;’
这里其实可以改为,每次进入页面使用倒计时前,清理下计时器 就好了。不用判断用户是onHide还是onUnload.
// 执行倒计时
countDown(times) {
clearInterval(timer)
timer = setInterval(() => {
if (times === 0) {
clearInterval(timer)
this.initData()
} else {
times -= 1
this.timestamp(times)
}
}, 1000)
},