簡體   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