0

我们正在构建一个带有单独计时问题的在线测试。问题是用户必须在预定秒数内完成的一系列表格。尽管用户会在每个问题上看到一个 javascript 时钟,但时间限制的实际执行必须发生在服务器端(否则用户很容易禁用/修改时间限制)。但是,我们担心网络延迟会不公平地惩罚在接近时间限制结束时提交答案的用户,延迟时间足够接近以使他们在时间限制内做出响应。

当我们在服务器收到答案时检查持续时间时,草率的解决方案似乎只允许几秒钟的“宽限期”,但这有点蹩脚。是否有一种安全的方法可以准确地确定用户何时单击“提交”。

如果重要的话,Web 应用程序是用 PHP 编写的。

4

1 回答 1

2

我之前实际上不得不处理这个问题。我们最终做的是标记页面请求的时间,并使用来自浏览器的 javascript ajax 请求(加载时)来确定往返时间。平均起来,它最终代表了他们的网络延迟/计算机速度,非常好。

显然,如果它超过 15-20 秒,你就会遇到更大的问题,但我们看到的最多的是 3-4 秒。

然后,您可以将其用于“公平”评估实际花费了多少时间。

于 2013-04-16T21:53:15.953 回答