繁体   English   中英

联合服务器端实现

[英]coundown server-side implementation

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

还剩xx天xx小时xx分钟xx秒

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

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

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

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

一些想法:

  • 将页面设置为自动刷新

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

但是...

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

  • 在Internet上准确同步时钟不是一个小问题,使用基于HTTP的服务可能不会解决这个问题。

综合考虑这两个因素,我认为重新同步计时器可能不值得尝试。

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

如果计时器过期,则拒绝从客户端发送信息

//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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM