[英]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.