javascript - 自页面加载后的 JQuery Clock/Timer(即使用户更改其计算机上的时间)

标签 javascript jquery math time timer

我修改了 SO, provided by SLaks 中的代码因此,即使用户更改了计算机上的时间,它也能正常工作。

<div id="timer"></div>的时间仍然显示页面加载后的实时时间(即使用户更改了计算机上的时间)。

当时间改变时,出现警告(请看下面的代码)。 问题是:一旦时间改变,警报每秒出现无数次(但预计只有一次)。为什么会这样?

$(document).ready(function () {
    var start = new Date;
    var end = (new Date - start) / 1000;
    setInterval(function () {
        if (Math.abs(end - (new Date - start) / 1000 )>1) {
            start = new Date - end * 1000;
            alert(Math.abs(end - (new Date - start) / 1000 ));
        }
        end = (new Date - start) / 1000;

        $('#timer').text(end + " Seconds");
    }, 100);
});

最佳答案

这实际上非常简单 - 脚本执行暂停,直到消息框关闭。当您关闭它时,计时器已经延迟并且条件再次为真。您可以通过复制 alert[...] 行自行测试:如果您足够快地关闭第一条消息,第二条消息将显示低于 1 的内容。

只需将 alert 替换为一些基于 HTML 的 float 窗口,一切都会好起来的。

关于javascript - 自页面加载后的 JQuery Clock/Timer(即使用户更改其计算机上的时间),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14298803/

相关文章:

c++ - 使用按位运算符相乘

javascript - $rootScope 和 $scope,共享对象

javascript - Piwik : How do I track a visitor (User ID) across domains (PHP/JS)?

javascript - Intl.NumberFormat 0 或两位小数

jQuery $.post 和 json_encode 返回一个带有引号的字符串

c++ - 将代表位置的整数分解为多个部分并再次返回

javascript - typescript 计算数组中的重复项并按每个项目的计数对结果进行排序

javascript - 在 div 中相对于 div 定位图像

javascript - 从 Meteor 集合文档中检索特定字段到 JS 文件中并剥离 HTML 标签

math - 密码学中的困惑和排列