0

我真的很感激,如果有人可以帮助我,我已经被这个问题困扰了几天,谷歌和其他 stackoverflow 答案似乎没有帮助。

我有一个带有模拟时钟的 Web 应用程序,从时钟我需要能够获取用户按下键盘的时间并将其与他们输入的时间进行比较,我可以通过表单获取他们输入的时间,但我我无法理解如何获得实际的按键时间。

只是为了确保我走在正确的轨道上,我是否能够在每个任务页面中放入一个 for 循环,例如:

    var i = 0; 
    for (i = 0; i < 40; i ++){

         //Add user input from form into an array

         //Add actual key press time in an array


         //Show next task link after the 40 trials are complete

         document.getElementById('nextTask').style.visibility="visible";
         document.getElementById('nextTask').style.display="block";
      } 

有 120 个试验,分 3 个单独的任务。

其中1个没有声音。

另外两个有声音,但只有 50% 和 75% 的时间会发出哔哔声,而在其他时候则不会......(我仍然在这方面苦苦挣扎......但我稍后会解决这个问题,哈哈。)

最后一点,我是否能够仅使用一个网页运行 40 次试验,或者我是否必须为整个任务创建 40 X 3 个单独的页面。

我创建了一个 JSFiddle,我对整个想法还是陌生的,所以如果我犯了错误,请告诉我。http://jsfiddle.net/StrangeLondoner/ymXeG/

时钟在随机数毫秒后停止,要按下的两个键是 s 和 k。

我要感谢您花时间阅读这个问题,并希望能以某种方式帮助我找到解决方案。

完成的

嘿伙计们,感谢您的意见。我想我会让你们知道我做了什么,以及是否有其他人正在寻找类似的答案。它可能有点原始,但我创建了一个相同的计数器,并与时钟同时运行,我知道性能方面这并不理想,但我想这必须做,直到我想出一个更好的解决方案。我想我必须让它以某种方式工作。

不管怎么说,还是要谢谢你。如果我能以某种方式找到更好的解决方案,我会更新这个。

4

2 回答 2

1

获取系统时钟并根据您的时钟指示进行匹配。这将是最准确的,因为您的时钟可能会滞后于系统负载。(当然,尝试获得按键也可以,但至少可以将伤害降到最低。)

Javascript 对于实时处理来说是一种糟糕的语言。

于 2012-09-06T15:18:43.813 回答
1

我会尝试这个 jQuery。它可能对您正在做的事情有用。

$(document).keydown(function(f){

if (f.keycode == 83 || f.keycode == 75) //key codes for s and k
{
    var d = new Date();
    var n = d.getTime();  // n now equals the number of milliseconds since January 1, 1970;
}

doSomethingWithTheTime(n); //Here you would call a function to store or compare your time.

return false;

});
于 2012-09-06T15:31:14.773 回答