考试提交:在unload里面提交试卷失败

需求:防止用户误点刷新或者误按f5导致试卷没提交

1、最初解决方案:

使用beforeUnload弹出窗口提醒用户是否要重载页面,并在unload里面提交试卷

mounted(){
    window.addEventListener("beforeunload", this.handleBeforeunload, false)
                
    window.addEventListener("unload", this.handleUnload, false)
},
beforeDestroy(){
        window.removeEventListener( 'beforeunload', this.handleBeforeunload)
        window.removeEventListener( 'unload', this.handleUnload )
},
methods:{

    handleBeforeunload(event){
        event.returnValue = false
    },

    handleUnload(){
        if ( !this.isDone && this.isStart ) {
            // 提交试卷
            this.toKaoShiOver()
        }
    },
}

问题:页面卸载了,可是接口没走完,导致试卷没提交上

2、最终解决方案:

   beforeunload保留,而提交试卷请求放在unload的,换成放在页面刷新后的接口判断试卷是否已答里面调用
   由于误点刷新或者误按f5后还是回到当前页,而一进页面会请求一个接口判断试卷是否已答,若已答但未提交,那么立即提交试卷,完美解决!

总结:思路变换~

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值