gpt4 book ai didi

使用服务器时间的 JavaScript 倒数计时器

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:47:18 24 4
gpt4 key购买 nike

我正在尝试创建一个基于服务器时间的倒数计时器。

我最初让服务器设置剩余时间,然后执行 1 秒的 setTimeout 来减少时间。

我发现了两个问题:

  1. 从服务器设置时间到呈现客户端页面和 JavaScript 开始运行之间存在延迟。滞后量取决于用户的互联网连接速度和计算机/JavaScript 引擎。
  2. 我认为 1 秒的 setTimeout 在较慢的计算机上可能会落后一点。

我对其进行了更改,以便服务器设置结束时间,客户端上的 JavaScript 将获取时间(UTC 格式)并计算剩余时间。然后它会在每个 setTimeout 回调中执行此操作。这使得时间和倒计时变得完美。如果客户端有一个快速的计算机/JavaScript 引擎,计时器停留在页面上。如果计算机/JavaScript 引擎速度较慢,您可能会看到这里或那里跳过一秒钟,但时间永远不会停止。

到目前为止,我发现此方法存在 1 个问题:

  1. 每个客户的时钟可能不同。

因此,如果客户计算机上的时间不正确,剩下的时间可能是几秒或 30 秒,甚至是几天。

有没有一种方法可以让我根据服务器的结束日期准确计算剩余时间?

最佳答案

我不知道您需要什么样的分辨率,但考虑到网络和页面呈现延迟,客户端-服务器协议(protocol)不可能比一秒好得多。我建议您每 5 或 10 秒进行一次 ajax 轮询,并相应地调整您的计时器。还有comet这本质上是“反向”ajax,可以将时间推送到客户端。但无论哪种方式,您仍然需要应对网络和渲染延迟。

关于使用服务器时间的 JavaScript 倒数计时器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4484652/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com