我正在构建一个AJAX页面,当用户单击一个框时,它会发送一个ajax请求并返回一个结果。这是一款非常简单的游戏。用户反复单击该框,我需要记录每次点击之间经过的时间,精确度为毫秒。实际上,根据我的请求,我将发送自上次请求以来经过的时间并将其存储在数据库或会话中。
Javascript确实有一个精确的毫秒计时器,对吗?那么jQuery是否能够轻松实现点击之间的时间?
答案 0 :(得分:6)
你不需要jQuery。要用毫秒来获取用户机器上的时间:
var nowInMilliseconds = new Date().getTime();
所以要比较两次,只需从结束时间中减去开始时间,这就是以毫秒为单位的差异。
示例:
(function() {
var firstClick;
function clickHandler() {
var now, duration;
now = new Date().getTime();
if (!firstClick) {
// Remember the time of the first click
firstclick = now;
}
else {
// Second click; how long as it been?
duration = now - firstClick;
// Reset so we're waiting for the first click again
firstClick = undefined;
// ...send your Ajax data to the server...
}
}
function pageLoad() {
$('#button').click(clickHandler);
}
window.onload = pageLoad; // or jQuery.ready() or whatever
})();
(外部函数仅用于作用域,因此我们不会创建不必要的全局符号。)