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

标签 javascript php mysql laravel-4

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

考试是定时的,例如 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);

关于javascript - 我应该如何最好地跟踪页面请求之间的计时器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23352035/

相关文章:

javascript - 如何区分鼠标选择和日期输入中的键盘事件

javascript - 列 Highcharts 的系列数据

php - 用斜杠查询

php - Zend Framework 2 模块的正确或首选目录结构是什么?

mysql - 将文件内容插入 MySQL 表的列

php - 为什么PHP+MySQL默认不使用文件缓存?

javascript - 添加到站点时 Js 轮播不工作

php - $_FILES ['file' ] ['tmp_name' ] 什么时候被删除?

mysql - 如何查找和禁用 MySQL 严格模式?

javascript - 两次验证之间的 Angular 过滤器不起作用?