【问题标题】:JQuery Clock / Timer since the page was loaded (even if user changes time on his computer)自页面加载以来的 JQuery 时钟/计时器(即使用户更改了计算机上的时间)
【发布时间】:2013-01-12 22:51:10
【问题描述】:

我已经修改了 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);
});

【问题讨论】:

  • 这一切的目的是什么?
  • 所有这些的目的是显示页面加载后的实时时间。
  • 从未处理过需要处理用户更改日期的情况......没有意义......但只需使用clearInterval或其他东西。但是……对我来说仍然没有太大意义。
  • 您能否回答我的问题(如果可以),为什么自从当地时间更改后警报会出现无数次?其余所有工作正常。谢谢。

标签: javascript jquery math time timer


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-23
    • 1970-01-01
    • 1970-01-01
    • 2017-03-19
    • 2012-12-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多