我应该如何最好地跟踪页面请求之间的计时器
How best should I keep track of a timer between page requests?
我正在用PHP编写一个web应用程序,让用户参加模拟考试(多选题)。
考试是定时的,例如30分钟。我不确定跟踪用户完成考试的最佳方法是什么。每个问题都是从MySQL数据库中提取的,并作为新页面提供给用户。
我应该用Javascript(例如setInterval)在第一页启动计时器,然后在检索下一页之前,每当提交问题时将其POST到服务器吗?有没有一种更优雅或更有效的方法可以做到这一点?
假设他们有30分钟的时间进行整个测试,并且没有休息时间,我会在他们单击开始时存储一个时间戳。
$_SESSION['start_time'] = time(true);
然后,当它们出现在页面上时,您可以通过ajax进行轮询,也可以通过setInterval()
设置运行倒计时的javascript变量
<script>
var elapsedTime = <?=time(true) - $_SESSION['start_time'] ?>`;
var timer = setTimeout(function () {
if (elapsedTime > 30 * 6) {
clearInterval(timer);
alert('game over');
}
elapsedTime += 1;
}, 1000);
创建一个表,存储测试到用户的关联,并在测试不再有效时在其中放置一个时间。这将允许查询和了解学生的剩余时间,并在不允许的情况下阻止人们重新尝试测试。
我会将开始时间存储在cookie中,到期时间设置为30*60 secs
。
请参阅php.net
相关文章:
- 是否可以缓存可下载的文件,并在XHR和非XHR请求之间共享该缓存
- Node.js HTTP/NET——连接和请求之间的区别
- Node.js&两个请求之间的Express/Can上下文切换可以是同步代码
- 使秒表在请求之间处于活动状态
- 如何识别源自JS脚本的http请求与HTML
- Google Geocoder 在 url 和 javascript 请求之间有不同的结果
- JavaScript 和 node.js 中多个请求之间的局部变量
- 用户请求和AJAX/资源请求之间的差异
- Express会话变量don'不会在请求之间持久存在
- 使用jquery ajax的两个CORS请求之间的时间间隔
- 在单元测试中,当[method]语句在请求之间时如何改变$httpBackend
- Node/commonJS可以“private”;请求之间的变量泄漏
- Express - Session不会在后续SSE请求之间被保存
- Node.js或其他JS服务器技术是否支持请求之间的本机共享内存而不需要序列化?
- 如何查找两个连续请求之间经过的时间
- jQuery AJAX请求之间的时间延迟
- 我应该如何最好地跟踪页面请求之间的计时器
- JS-设置发送AJAX请求之间的延迟
- 这两个请求之间的区别
- YouTube的请求和我的请求之间的区别