5

我正在构建一个点探测任务(人们必须在图像消失后对一个点做出快速反应),我们需要测量反应时间并显示预定义间隔的刺激,以便在在线治疗研究中使用。

我们已经决定使用 Javascript,我们愿意对用户施加一些限制,即排除 IE 等。但我们不能完全禁止 Windows。

我阅读了John Resig关于该主题的帖子,据此我们将不得不禁止 Windows 上的所有浏览器,除了 Firefox 和 Chrome。

此外,此答案建议将console.time();FF 和 Chrome 用作最佳实践。

我有一些后续问题,考虑到 Resig 的帖子已经 4 年了,并且上面的问题是关于测量函数执行时间(这意味着执行代码倾斜计时器是好的,在我们的例子中还不错)而不是关于反应时间研究。

以下类似问题只是询问“最佳网络语言”,并且只收到了使用 JS 的全面推荐(这是一些已发表的研究所做的,但他们没有公布技术细节)。

  1. 我们能以某种方式使用更好的准确性console.time()吗?我认为不会,因为它只返回到控制台,即不能在变量中捕获。
  2. 在过去 4 年中,计时精度是否发生了重大变化?出于多种原因,我很乐意禁止 IE,但 Windows 上的 Safari 和 Opera 可能发生了变化?
  3. 我是否应该使用与执行过程相关的第二种方法来获得另一组时间进行比较/交叉验证?
4

2 回答 2

4

ObDisclaimer - 我曾经为大学研究部门编写过这样的软件。

您可以使用performance.now()(或performance.webkitNow(),取决于浏览器版本)获得比Date.now(). 浏览此处获取更多信息。

然而,需要考虑的一个问题是屏幕刷新。假设刷新率为 60 Hz,则图像实际出现在屏幕上的时间可能会有 16 ms 的差异,具体取决于:

  1. 软件是否与屏幕刷新率同步(在 JS、AFAIK 中不可能),以及
  2. 其中图像和点探针相对于屏幕顶部 - 在屏幕顶部绘制的像素在它们下方的像素之前绘制。

您还应该考虑键盘扫描间隔等因素造成的影响。在一个项目中,研究人员发现了(根据记忆,这是 20 年前)大约 30 毫秒的倍数的重要分组,这似乎是由于在 Psion PDA 上扫描键盘以查找按键的频率是用于测试。

在这种情况下,我通过使用 PIC 微控制器构建硬件“按钮盒”解决了这个问题,该微控制器可以以 9600 bps 的速度发送串行字节,没有扫描延迟,并且 <2ms 可以将按键从盒子传递到 PDA。

我正在考虑写一篇关于屏幕刷新问题的论文。然后我得到了一份真正的工作;-) 我不知道是否有其他人研究过它。

于 2012-12-20T13:38:16.597 回答
3

最近有一篇来自 Stian Reimers 和 Neil Stewart 的关于这个主题的好文章。

Adobe Flash 和 HTML5/JavaScript Web 实验中的演示和响应时间准确性 http://www.ncbi.nlm.nih.gov/pubmed/24903687

于 2014-10-29T11:27:48.100 回答