我正在製作一個網站,用戶反覆點擊一個按鈕來增加他/她的分數。爲了防止人們作弊,我想測量每次點擊之間的時間間隔,如果他們點擊的速度非常快,點擊之間的時間非常短,我想要一個CAPTCHA或其他東西出現。如何測量兩次點擊按鈕之間的時間?
我如何測量點擊次數?
我正在製作一個網站,用戶反覆點擊一個按鈕來增加他/她的分數。爲了防止人們作弊,我想測量每次點擊之間的時間間隔,如果他們點擊的速度非常快,點擊之間的時間非常短,我想要一個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;
};
}()));
這將輸出&店以毫秒爲單位兩次點擊之間的差異。你可以使用歷史數組來獲得平均值,並檢查它是否低於50ms或什麼。
演示,平均檢查:http://jsfiddle.net/TxKjT/2/
點擊處理程序只能將時間戳記保留爲JavaScript「Date」實例。減去其中的兩個,你的間隔以毫秒爲單位。
請注意,時鐘精度不一定非常好,人類可以快速生成點擊。我認爲Windows不會比15毫秒的粒度更好。
這正是我期待的那種東西,謝謝!這可能聽起來有點愚蠢,但是如何查看數據存儲在控制檯日誌中?謝謝 – Taimur 2011-03-05 13:57:49
@Taurur:你需要一個能夠理解輸出的調試器/工具,比如* Firebug *或* Webkits Developer tools * – jAndy 2011-03-05 14:00:09
太棒了,謝謝 平均檢查是個好主意:D – Taimur 2011-03-05 14:01:42