如何衡量按下2次按钮之间的时间?

我正在建立一个网站,用户反复点击按钮以提高他/她的分数。 为了防止人们作弊,我想测量每次点击之间的时间长度,如果他们点击非常快,点击之间的时间很短,我想要一个CAPTCHA或其他东西出现。

我如何衡量点击之间的时间?

我的建议如下:

$('button').click((function() { var history = [], last = +new Date(); return function(e) { history.push(e.timeStamp - last); console.log(history[history.length - 1]); last = e.timeStamp; }; }())); 

这将输出并存储两次点击之间的差异,以毫秒为单位。 您可以使用历史数组来获取平均值并检查是否低于50毫秒或其他值。

演示 : http : //jsfiddle.net/TxKjT/

平均检查演示 : http : //jsfiddle.net/TxKjT/2/

Click处理程序可以将时间戳维护为JavaScript“Date”实例。 减去其中两个,你有间隔,以毫秒为单位。

请注意,时钟精度不一定非常高,人类可以快速生成点击。 我认为,Windows不会比15毫秒的粒度更好。