2013-02-25 29 views
0

我正在嘗試使用PhoneGap創建移動應用。我需要應用程序以斷開模式工作。所以我在本地存儲數據,當連接變爲在線時,我將它與遠程數據同步。要執行遠程同步,我需要將最後修改的日期傳遞給服務器,以便知道將哪些更新推送到客戶端。問題在於服務器時間和客戶端時間不同。事實是服務器日期,所以我需要能夠在服務器上以某種方式解釋客戶端日期,以便與客戶端的服務器日期一致或傳遞服務器的日期。有關如何做的建議?我正在考慮使用來自javascript的將正確的日期從移動應用通過javascript傳遞到服務器

(new Date()).getTimezoneOffset() 

並基於此調整客戶端日期。但是這對於日光節約具有問題。有什麼建議麼? Server是一個ASP.NET MVC 4個網站

回答

1

如果有多個客戶端對多個時區工作,一招,你可以做的是計算服務器和客戶端之間的時間差和查詢服務器時使用它。下面是步驟從服務器上午10時

  1. 客戶端下載數據(如在客戶端)
  2. 客戶端存儲最後下載時間
  3. 客戶端離線
  4. 客戶在1.30上線並且現在決定是與服務器同步的好時機
  5. 客戶端從服務器請求當前時間並且服務器回覆其下午2.45時
  6. 現在客戶端k NOW的這之間的時間差和服務器是1小時15分鐘和
  7. 客戶端應用1小時15分鐘和這個三角洲上次下載時間(步驟2),並要求服務器發送任何更新,因爲上午11時15服務器時間

請記住,你必須計算每一筆交易(同步操作)的應用增量的客戶可以在兩個同步操作

跨越時區

可能有其他很酷的解決方案,但是這是涉及到作爲一個簡單的解決方案。

乾杯

+0

Meegamarachc這一個看起來像一個很好的解決方案,這只是不幸的是,我要查詢服務器的時間所有的時間,但它應該是好的,但。也許我可以發送一個同步請求給服務器最後修改日期與當前客戶端時間一個請求,讓服務器做數學題。 – fenix2222 2013-02-26 05:45:54

+0

是的,在這種情況下,你會發送最後的下載時間和當前時間到服務器,服務器計算三角洲和數據發回。與你的項目夥伴祝你好運.. – 2013-02-26 06:19:16

相關問題