最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - Node.JS Accurate Timer - Stack Overflow

programmeradmin5浏览0评论

How can I create a Node.JS accurate timer? It should look like a kitchen timer or a stopwatch.

And I need accuracy, as much as possible. The application will promote some kind of "clicks war". I need to store every (concurrent) user's click, noting seconds and milliseconds (to tie the game).

How can I do it? Are there some code sample?

Thanks in advance.

How can I create a Node.JS accurate timer? It should look like a kitchen timer or a stopwatch.

And I need accuracy, as much as possible. The application will promote some kind of "clicks war". I need to store every (concurrent) user's click, noting seconds and milliseconds (to tie the game).

How can I do it? Are there some code sample?

Thanks in advance.

Share Improve this question edited Feb 5, 2014 at 4:26 Farid Nouri Neshat 30.4k6 gold badges77 silver badges125 bronze badges asked Nov 25, 2011 at 0:05 sonnuforevissonnuforevis 1,3117 gold badges22 silver badges38 bronze badges 1
  • 1 Worth a note for the new native API for it nodejs.org/api/process.html#process_process_hrtime - see the link for possible usages – Fabiano Soriani Commented Mar 2, 2015 at 21:07
Add a comment  | 

1 Answer 1

Reset to default 24

Well You should have a look at microtime module, which gives you the time as accurate as microseconds. You can even measure CPU tick time with it!

As of the code well you can do something like this (Storing the time in objects and then accessing them with the user id, advantage would be no duplicate of the same user and faster access to one, if the user name is known):

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

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

or (pushing all in an array, advantage would be that it can be sorted, and easily all of them be iterated)

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

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

As of node v0.8.0 you can use process.hrtime() which will return an array both containing a relative seconds and nanoseconds to past.

发布评论

评论列表(0)

  1. 暂无评论