我正在用 PHP 编写一个网络应用程序,让用户可以参加模拟考试(多项选择题)。
考试是定时的,例如 30 分钟。我不确定跟踪用户完成考试的时间的最佳方法是什么。每个问题都从 MySQL 数据库中提取并作为新页面提供给用户。
我是否应该在第一页上使用 Javascript(例如 setInterval)启动一个计时器,然后在检索下一页之前提交问题时将其 POST 到服务器?有没有更优雅或更有效的方法来做到这一点?
最佳答案
假设他们有 30 分钟的时间完成整个测试并且没有休息时间,我会在他们点击开始时存储一个时间戳。
$_SESSION['start_time'] = time(true);
然后您可以在他们在页面上时通过 ajax 进行轮询,或者您可以通过 setInterval()
<script>
var elapsedTime = <?=time(true) - $_SESSION['start_time'] ?>`;
var timer = setTimeout(function () {
if (elapsedTime > 30 * 6) {
clearInterval(timer);
alert('game over');
}
elapsedTime += 1;
}, 1000);
关于javascript - 我应该如何最好地跟踪页面请求之间的计时器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23352035/