javascript - Node.JS 精确计时器

标签 javascript node.js timer

如何创建 Node.JS 精确计时器?它应该看起来像厨房定时器或秒表。

我需要尽可能准确。该应用程序将促进某种“点击 war ”。我需要存储每个(并发)用户的点击,记录秒数和毫秒数(以平局)。

我该怎么做?有代码示例吗?

提前致谢。

最佳答案

嗯,你应该看看microtime模块,它为您提供精确到微秒的时间。您甚至可以用它测量 CPU 节拍时间!

从代码开始,你可以做这样的事情(将时间存储在对象中,然后使用 user id 访问它们,优点是不会重复同一用户并且可以更快地访问一个,如果用户名已知):

var microtime = require('microtime');
  , clicks = {};

click(function(user){ // An event listener for received clicks
  clicks[user] = microtime.now();
});

或者(将所有插入一个数组,优点是可以对其进行排序,并且很容易将它们全部迭代)

var microtime = require('microtime');
  , clicks = [];

click(function(user){ // An event listener for received clicks
  clicks.push({
    user : user,
    time : microtime.now()
  });
});

从 Node v0.8.0 开始,您可以使用 process.hrtime()这将返回一个数组,其中包含过去的相对秒数和纳秒数。

关于javascript - Node.JS 精确计时器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8263652/

相关文章:

javascript - 为什么这个正则表达式不抓取每个 <li> 的单独匹配项?

javascript - 为什么在对象方法中没有使用 var 声明的变量不会成为全局变量?

node.js - nodejs服务器断开连接时如何清除redis数据库?

arrays - 基于数组元素的连接

Java 定时器与 Linux Cronjob

java定时器定时任务

javascript - 使用Javascript转换罗马数字的算法

javascript - 是否可以检测导致页面重新加载的操作?

node.js - 使用 sequelize for nodejs 更新多对多连接表

c - 在给定时间频率(计时器)执行功能的最佳方式?