使用jQuery记录持续时间(以毫秒为单位)?

时间:2009-12-22 16:17:01

标签: javascript jquery ajax

我正在构建一个AJAX页面,当用户单击一个框时,它会发送一个ajax请求并返回一个结果。这是一款非常简单的游戏。用户反复单击该框,我需要记录每次点击之间经过的时间,精确度为毫秒。实际上,根据我的请求,我将发送自上次请求以来经过的时间并将其存储在数据库或会话中。

Javascript确实有一个精确的毫秒计时器,对吗?那么jQuery是否能够轻松实现点击之间的时间?

1 个答案:

答案 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
})();

(外部函数仅用于作用域,因此我们不会创建不必要的全局符号。)