我正在建立一个点探测任务(人们必须在图像消失后迅速对一个点做出反应)我们需要测量反应时间并显示预定间隔的刺激,以便在在线治疗研究中使用.
我们已经决定使用Javascript,我们愿意对用户施加一些限制,即排除IE等.但我们不能完全禁止Windows.
我阅读了John Resig关于该主题的帖子,根据这一点,除了Firefox和Chrome之外,我们必须禁止Windows上的所有浏览器.
此外,这个答案建议使用console.time();
FF和Chrome作为最佳实践.
我有一些后续问题,考虑到Resig的帖子现在已经4年了,上面的问题是关于测量函数执行时间(这意味着执行代码偏移计时器是好的,不像我们的情况那样糟糕)而不是关于反应时间的研究.
以下类似的问题只是要求"最好的网络语言",并且只接受了使用JS的一揽子建议(这是几个已发表的研究所做的,但他们没有公布技术细节).
console.time()
吗?我想不是,因为它只返回到控制台,即它无法在变量中捕获.ObDisclaimer - 我曾经为大学研究部门编写过这样的软件。
您可以使用performance.now()
(或performance.webkitNow()
,取决于浏览器版本)来获取比 更准确的时间戳Date.now()
。 浏览此处获取更多信息。
然而,需要考虑的一个问题是屏幕刷新。假设刷新率为 60 Hz,图像实际显示在屏幕上的时间可能会有 16 毫秒的差异,具体取决于:
您还应该考虑键盘扫描间隔等因素造成的影响。在一个项目中,研究人员发现了围绕大约 30 毫秒倍数(根据记忆,这是 20 年前)的时间段的显着分组,这似乎是由于 Psion PDA 上扫描键盘以查找按键的频率所致。用于测试。
在这种情况下,我通过使用 PIC 微控制器构建一个硬件“按钮盒”来解决这个问题,该微控制器可以以 9600 bps 的速度发送串行字节,没有扫描延迟,并且将按键从按钮盒发送到 PDA 的时间小于 2 毫秒。
我正在考虑写一篇关于屏幕刷新问题的论文。然后我找到了一份真正的工作;-)我不知道是否还有其他人研究过它。