gpt4 book ai didi

python - 定时测验 : How to consider internet interruptions?

转载 作者:太空狗 更新时间:2023-10-30 02:34:51 28 4
gpt4 key购买 nike

我正在准备 Django 中的测试或测验。测验需要在一定的时间范围内完成。说 40 题 30 分钟。我总是可以在测试开始时启动时钟,然后在测验完成时计算时间。然而,在尝试过程中,可能会出现互联网连接中断、系统崩溃/断电等问题。

我需要一个策略来弄清楚这种事故何时发生,并停止计时,然后让用户从停止的地方再次参加测试,并重新开始计时。

什么是正确的策略?非常欢迎任何帮助,包括示例代码/示例/想法

最佳答案

您的策略应取决于测试的重要性和重新参加整个测试的能力。

  1. 测试/测验是为了娱乐还是为了检查能力/知识?
  2. 您正在处理登录用户吗?
  3. 测试是从大量可用问题中随机生成的吗?

这些是您首先需要自己回答的问题。

请记住:

  • 恶意用户可以模拟连接中断/电源故障,
  • 您唯一可以信任的时钟是服务器端的时钟,
  • 浏览器端的一切都可以被操纵(想想 Firebug /控制台 js 注入(inject))

我的方法是:

  1. 告知用户时间是重要因素,在给定分数时可能不会考虑连接问题...,
  2. 只提供一个问题,等待回答,提供另一个问题,
  3. 整个测试时间应计算为每个回答时间的SUM:
    • 保存每个“问题发送”/“收到答案”时间戳并从中计算回答时间,
    • 问题之间的时间不算在内,
    • 对于哪些问题更难/需要更长的时间来回答,您将获得更多的范围。
  4. 向您的问题页面添加某种心跳(例如每 X 秒发送一次 ajax 请求),当心跳停止时您可以(取决于您的选项):
    1. 使问题无效并通过对话框通知用户他有连接问题并且必须刷新以获取新问题而不是如果您有更大的问题轮询要使用
    2. 在服务器端暂停时间(例如,问题页面变暗,因此用户在恢复连接之前无法回答)IMO 仅用于游戏/有趣的测验/测试
    3. 在服务器端保存每次中断的信息,这将有助于稍后做出允许重新进行整个测试的决定例如他在第 20 个问题之前都很好,然后连续 3-4 个简单的问题他都掉线了......

关于python - 定时测验 : How to consider internet interruptions?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5995674/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com