Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 服务器端实现_Java_Javascript_Spring_Counter - Fatal编程技术网

Java 服务器端实现

Java 服务器端实现,java,javascript,spring,counter,Java,Javascript,Spring,Counter,在客户端,我们有典型格式的JS计数器: 还剩xx天xx小时xx分xx秒 它一直在计数。每当计数器达到零,我想自动关闭事件的注册 我不知道的是如何同步服务器端和客户端的时间,这样cron作业将以至少分钟的精度执行,并考虑时区。我需要吗?除了数据库中的“日期”“时间”“区域设置”,我还需要什么 上下文是Java+Spring+Postgresql上的web应用程序 我不需要完整的解决方案—关于从何处开始挖掘的很好的提示(或链接)。如果您需要的是让服务器知道客户端的倒计时何时结束,那么您所需要做的就是

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

还剩xx天xx小时xx分xx秒

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

我不知道的是如何同步服务器端和客户端的时间,这样cron作业将以至少分钟的精度执行,并考虑时区。我需要吗?除了数据库中的“日期”“时间”“区域设置”,我还需要什么

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


我不需要完整的解决方案—关于从何处开始挖掘的很好的提示(或链接)。

如果您需要的是让服务器知道客户端的倒计时何时结束,那么您所需要做的就是在倒计时结束时发送一个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);
Entry=Inputstream();
if(system.currentTimeMillis()
一些想法:

  • 将页面设置为自动刷新

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

然而

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

  • 在internet上准确地同步时钟是一个不小的问题,并且可能不是使用基于HTTP的服务要解决的问题


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

同步时间是什么意思?例如,您是否已经在客户端和服务器上进行倒计时,并且它们的计数基于时区不同步?在服务器端,您不应该保留计数器,甚至不应该保留cron作业。当你得到注册时,只需检查一下时间,如果太晚了,请回复一条错误消息,否则继续。我支持Thor84no的建议Thor,请将此作为回答,以便我可以接受。虽然这听起来很明显,但我们倾向于将事情过于复杂化。