在客戶端,我們在典型的格式JS櫃檯:coundown服務器端執行
XX天XX小時XX分XX秒時
,是它讓計數。每當計數器達到零時,我想自動關閉註冊事件。
我不明白的是如何在服務器端和客戶端兩種時間同步,從而使cron作業將至少分鐘精密佔時區進行。我需要嗎?除了數據庫中'date''time''locale'之外,我還需要什麼?
的背景是基於Java +春+ PostgreSQL的
我不需要整個解決方案的Web應用程序 - 而很好的提示(或鏈接),從哪裏開始挖。
在客戶端,我們在典型的格式JS櫃檯:coundown服務器端執行
XX天XX小時XX分XX秒時
,是它讓計數。每當計數器達到零時,我想自動關閉註冊事件。
我不明白的是如何在服務器端和客戶端兩種時間同步,從而使cron作業將至少分鐘精密佔時區進行。我需要嗎?除了數據庫中'date''time''locale'之外,我還需要什麼?
的背景是基於Java +春+ PostgreSQL的
我不需要整個解決方案的Web應用程序 - 而很好的提示(或鏈接),從哪裏開始挖。
如果你需要的是讓服務器知道,當倒計時已經在客戶端結束,所有你需要做的是,當倒計時完成後發送AJAX請求。
它是另一種方式,但謝謝你:-) – Aubergine 2012-07-10 15:50:58
只是拒絕發送來自客戶端的信息,如果在計時器到期
//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);
一些想法:
設置頁面自動刷新
定期發送一個AJAX請求重新同步。
但是......
在現實中,這將是令人驚訝的客戶端和服務器端的時鐘過了幾個小時明顯漂移。一半體面的個人電腦每天不會漂移超過幾秒鐘。
正在同步時鐘準確地在互聯網上是一個不平凡的問題,可能不是一個,你會使用基於HTTP的服務來解決。
把這兩者結合在一起,我認爲定時器的rsyncing可能不值得嘗試。
你是什麼意思同步時間?例如,你現在是否已經在客戶端**和**服務器上倒計時,並且它們正在基於時區計數不同步? – 2012-07-10 12:59:13
在服務器端,你不應該保持一個櫃檯,甚至cron作業。只需檢查註冊的時間,如果太晚,請回復錯誤消息,否則繼續。 – Thor84no 2012-07-10 13:01:58
我第二次Thor84no的建議 – Adi 2012-07-10 13:03:58