Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用Javascript计时_Javascript_Time - Fatal编程技术网

用Javascript计时

用Javascript计时,javascript,time,Javascript,Time,如何使用javascript计算两个事件之间经过的时间?比如,到毫秒?那么,您可以使用(firefox插件)对您的功能进行基准测试。查看这篇文章:这很难做到 var start = new Date(); // Do things here var finish = new Date(); var difference = new Date(); difference.setTime(finish.getTime() - start.getTime()); alert( difference.g

如何使用javascript计算两个事件之间经过的时间?比如,到毫秒?

那么,您可以使用(firefox插件)对您的功能进行基准测试。查看这篇文章:

这很难做到

var start = new Date();
// Do things here
var finish = new Date();
var difference = new Date();
difference.setTime(finish.getTime() - start.getTime());
alert( difference.getMilliseconds() );

制作一个可重用的计时器对象怎么样

用法:

// event 1
document.getElementById('elId').onclick = function () {
  timer.start('myTimer1');
};

// event 2
document.getElementById('otherElement').onclick = function () {
  alert(timer.stop('myTimer1')); // alerts the time difference in ms
};
实施:

var timer = (function () {
  var startTimes = {}; // multiple start times will be stored here

  return {
    start: function (id) {
      id = id || 'default'; // set id = 'default' if no valid argument passed
      startTimes[id] = +new Date; // store the current time using the timer id
    },
    stop: function (id) {
      id = id || 'default';
      var diff = (+new Date - startTimes[id]); // get the difference
      delete startTimes[id]; // remove the stored start time
      return diff || undefined; // return the difference in milliseconds
    }
  };
}());

日期
对象执行算术运算时,它们会隐式转换为毫秒(自1970-01-01 00:00:00 UTC起),因此您只需从操作结束时创建的
日期减去操作开始时创建的
日期

var start = new Date();
doSomeHeavyWork();
var end = new Date();
var millisecondsElapsed = end - start;

最简单的方法

console.time("timer name")
console.timeEnd("timer name")

这将以毫秒为单位将时间输出到控制台。

如果您只需要毫秒,当然,您不需要创建新日期,只需减去两次即可。另外,您可以将第4-5行缩短为:var difference=newdate(finish.getTime()-start.getTime());哦,看在拉面的份上。如果您有超过999毫秒的时间,此方法将根本不起作用。值得注意的是,Javascript计时的准确性可能非常值得怀疑,无论是异步代码(setTimeout,setInterval)还是轮询持续时间(与这里给出的答案一样)。您也可以在Safari和Chrome中使用Web Inspector(和其他WebKit浏览器)。这些工具中的结果将比手动日期轮询更可靠,提供更多信息。太棒了,这段代码完全符合要求。
console.time("timer name")
console.timeEnd("timer name")