0

在客户端,我们有典型格式的 JS 计数器:

xx 天 xx 小时 xx 分钟 xx 秒

它一直在计数。每当计数器达到零时,我想自动关闭事件的注册。

我没有得到的是如何在服务器端和客户端同步时间,这样 cron 作业将以至少分钟的时区精度进行计算。我需要吗?除了数据库中的“日期”“时间”“语言环境”之外,我还需要什么?

上下文是 Java + Spring + Postgresql 上的 Web 应用程序

我不需要整个解决方案——关于从哪里开始挖掘的相当好的提示(或链接)。

4

3 回答 3

1

一些想法:

  • 将页面设置为自动刷新

  • 定期发送 AJAX 请求以重新同步。

然而 ...

  • 实际上,客户端和服务器端时钟在几个小时内明显漂移会令人惊讶。一台像样的 PC 每天漂移的时间不会超过几秒钟。

  • 在 Internet 上准确同步时钟不是一个简单的问题,而且可能不是您打算使用基于 HTTP 的服务来解决的问题。

将这两者结合起来,我认为 rsyncing 计时器可能不值得尝试。

于 2012-07-10T13:08:05.470 回答
0

如果计时器到期,则拒绝发送来自客户端的信息

//have customer enter entry information

if (endtime > system.currentTimeMillis())
{
    // accept entry
    Outputstream.Write(Entry)
{

else
{
    "Sorry Registration Closed"
}

另一种方法是在服务器端倒计时并在为时已晚时拒绝进入。

Entry = Inputstream();
if (system.currentTimeMillis() < endtime)
{
    myEntries[x] = Entry;
    response = "Entry accepted!"
}
else
{
    response = "Entry denied: Registration closed"
}

Outputstream.write(response);
于 2012-07-10T13:07:26.450 回答
0

如果您需要让服务器知道客户端的倒计时何时结束,那么您需要做的就是在倒计时完成时发送一个 AJAX 请求。

于 2012-07-10T13:00:05.317 回答