php - 答题系统如何计时?
大家讲道理
大家讲道理 2017-04-10 18:02:56
[PHP讨论组]

现在要做一套答题系统,整体的业务逻辑是:
(1)用户购买了某套试题,试题有答题时长,比如2小时。
(2)用户开始做题,从用户第一次打开试题开始计时,用户答题五分钟以后关闭试题页面,该套试题的剩余时间为:(2小时-5分钟)。
想问下,有没有比较好的计时方法?

刚开始的思路是在用户点开试题的时候,前端开始计时,比如5秒钟向后端回传一次数据,或者等用户关闭试题页面的时候,将学习时间一次提交到后端。但是,这里有个问题,如果用户抓包拦截了请求,那么后端就不能正确统计时间。
大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(6)
PHP中文网

可以参考下牛客网,在开始试题触发一次后端请求,每次点击下一题也触发一次,在页面停留每几秒触发一次。在这几次触发中可以收集时间。

迷茫

答题应该是一直答吧。。难道还可以关闭继续答?如果是这样那这个意义就不大了吧,看完题目后面再答。。这个计时就是伪需求。。。如果一直答的话,后端计时就可以了,前段搞个提示性的就行,以后端为主

迷茫

开始答题时就给后端做个记录啊, 记录开始时间, ajax请求时验证是否超时. 如拦截, 总要提交吧, 对比下就可以了

天蓬老师

说白了就是不断的进行ajax轮询,或者就看下html5的Server-sent Events 要不就是web.socket

怪我咯

开始答题后端记录时间,然后前端那这个时间进行倒计时。用户关闭答题画面,记录这个关闭时间。下次再答题,画面就跟据最开始记录的时候与上次关闭的时间计算出剩余时间进行倒计时。为防止时间不一致,可以不每隔几分钟再做一遍时间校验以纠正时间。

PHP中文网

session记下开始答题时间么,前端只从后端读

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号