如何找到两个按钮点击之间的差异(以毫秒为单位)?

时间:2014-01-02 20:50:15

标签: javascript datetime

我正在尝试制作测试您的反应时间的程序,但我不知道如何衡量两个事件之间的时间,例如按钮点击。到目前为止,这是我的代码。提前感谢任何可以提供帮助的人。

<!DOCTPYE html>
<html>
   <head>
      <script>
         var button = document.getElementById("reactionTester");
         var start = document.getElementById("start");
         function init() {
            var startInterval/*in milliseconds*/ = Math.floor(Math.random() * 30) * 1000;
            setTimeout(startTimer, startInterval);

         }

         function startTimer() {
            /*start timer and then later use stopTimer() to stop the timer and find 
             the difference bettween both button clicks.*/
         }
      </script>
   </head>
   <body>
      <form id="form">
         <input type="button" id="reactionTester" onclick="stopTimer()">
         <input type="button" value="start" id="start" onclick="init()">
      </form>
   </body>
</html>

5 个答案:

答案 0 :(得分:7)

var startTime;

function startButton() {
    startTime = Date.now();
}

function stopButton() {
    if (startTime) {
        var endTime = Date.now();
        var difference = endTime - startTime;
        alert('Reaction time: ' + difference + ' ms');
        startTime = null;
    } else {
        alert('Click the Start button first');
    }
}

将开始和停止按钮绑定到这些功能。

DEMO

答案 1 :(得分:1)

为了获得已经过去的时间,你总是需要一个start_time和end_time。 startTimer()应设置start_time变量(或类似命名的东西),stopTimer()应设置end_time变量。

stopTimer()然后可以减去两次,你已经达到了毫秒数。

(JavaScript以毫秒为单位存储时间,因此oldTime - newTime =毫秒传递。)

编辑:示例JSFiddle - http://jsfiddle.net/L3Xha/

var startTime, endTime;

// self-executing function
(function(){
    //    init the background to white
    document.body.style.background = "white";

    //    reset the color of the BG after 3 seconds.
    setTimeout(
        function(){
            document.body.style.background = "red";
            startTime = Date.now();
        }
    , 3000);

    $("#go").on("click", function(){
        stopTime = Date.now();

        $("#reflex").text(
            "Your time was " + (stopTime - startTime) + "ms."
        );
    });
})();

答案 2 :(得分:0)

您不需要表格,只需要按钮,也不需要间隔。你也不需要jQuery。

<!DOCTPYE html>
<html>
   <head>
      <script>
         var startTime, running;
         function startStop() {
            if (running) {
               var timeTaken = Date.now() - startTime;
               running = false;
               console.log("Time: " + timeTaken);
            }
            else {
               running = true;
               startTime = Date.now();
            }
         }
      </script>
   </head>
   <body>
      <button onclick="startStop();">Start/Stop</button>
   </body>
</html>

修改

Date.now()可能更快。

答案 3 :(得分:0)

跟踪第一次点击的时间,第二次点击,显示现在和第一次点击之间的差异。

var start;

$('button').click(function() {
  if (undefined === start) {
    start = new Date().getTime();
    return;
  }

  alert('Time difference is:' + (new Date.getTime() - start));
});

答案 4 :(得分:0)

要测量两次按钮点击之间的毫秒数,请在javascript中记录时间戳

第一个按钮:

document.getElementById('submit-button1').onclick = function() {
   console.log(new Date().getTime());       //1388696290801
}

第二个按钮:

document.getElementById('submit-button2').onclick = function() {
   console.log(new Date().getTime());      //1388696292730
}