我应该如何最好地跟踪页面请求之间的计时器?

时间:2014-04-28 22:10:13

标签: javascript php mysql laravel-4

我正在用PHP编写一个Web应用程序,让用户可以参加模拟考试(多项选择题)。

考试是定时的,例如30分钟。我不确定跟踪用户完成考试的时间的最佳方法是什么。每个问题都从MySQL数据库中提取出来,并作为新页面提供给用户。

我应该使用Javascript(例如setInterval)在第一页上启动计时器,然后在检索下一页之前每当提交问题时将其发送到服务器吗?有更优雅或有效的方法吗?

3 个答案:

答案 0 :(得分:2)

假设他们整个测试有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);

答案 1 :(得分:1)

创建一个表,将测试存储到用户关联中,并在测试不再有效时将时间放在那里。这将允许查询并找出学生剩余时间的内容,并且如果不允许,则阻止人们重新尝试测试。

答案 2 :(得分:0)

我会将开始时间存储在Cookie中,并将到期时间设置为30*60 secs

请参阅php.net