倒计时服务器端实现

时间:2012-07-10 12:57:08

标签: java javascript spring counter

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

xx天xx小时xx分钟xx秒左右

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

我没有得到的是如何在服务器端和客户端同步时间,因此cron作业将至少进行精确计算时区。我需要吗?除了数据库中的'date''time''locale',我还需要什么?

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

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

3 个答案:

答案 0 :(得分:1)

一些想法:

  • 将页面设置为autorefresh

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

然而......

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

  • 通过互联网准确同步时钟是一个非常重要的问题,可能不是您要使用基于HTTP的服务解决的问题。

将这两者放在一起,我认为定时器可能不值得尝试。

答案 1 :(得分:0)

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

答案 2 :(得分: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);