0

誰かが私を助けてくれれば、私はこの問題に数日間立ち往生しており、Google、および他のスタックオーバーフローの回答は役に立たないようです。

アナログ時計を備えた 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";
      } 

3 つの別々のタスクで 120 の試行があります。

そのうちの 1 つは音が出ません。

他の 2 つは音が出ますが、50% と 75% の確率でビープ音が発生し、それ以外の場合は発生しません.. (私はまだその部分で苦労しています..しかし、後でそれに取り組みます 笑.)

最後に、1 つの Web ページだけを使用して 40 の試行を実行できるか、それともタスク全体で 40 X 3 の個別のページを作成する必要があるかということです。

私は JSFiddle を作成しました。私はまだアイデア全体に慣れていないので、間違いを犯した場合はお知らせください。http://jsfiddle.net/StrangeLondoner/ymXeG/

時計は乱数のミリ秒後に停止します。押すキーは s と k の 2 つです。

この質問をお読みいただき、どうにかして解決策を見つけていただければ幸いです。

終了した

皆さん、ご意見ありがとうございます。私が何をしたか、そして他の誰かが同様の答えを探しているかどうかを皆さんに知らせたいと思いました. 少し原始的かもしれませんが、私は同一のカウンターを作成し、クロックと同時に実行しました。これは理想的ではないというパフォーマンスの観点から知っていますが、より良い解決策を思いつくまではこれを行う必要があると思います. どうにかして機能させなければならないと思います。

とにかくありがとう。どういうわけかより良い解決策を見つけることができれば、これを更新します。

4

2 に答える 2

1

システムクロックを取得し、クロックが示すものと一致させます。時計はシステムの負荷によって遅れる可能性があるため、最も正確です。(もちろん、キーを押そうとすることもできますが、少なくともダメージを最小限に抑えることができます。)

Javascript は、リアルタイム処理には適していない言語です。

于 2012-09-06T15:18:43.813 に答える
1

I would try this bit of jQuery. It may be useful to what you are doing.

$(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 に答える