2011-05-02 64 views
1

我正在考慮開發具有離線功能的Web應用程序。我正在考慮將所有客戶端表單回發格式化爲JSON對象,並將這些直接寫入表單回傳中的HTML5 LocalStorage。然後,我將有一個單獨的進程異步輪詢LocalStorage以獲取JSON條目並將其提交給服務器。此服務器同步過程不會有任何UI上下文。實際的用戶界面可以非常靈敏。 (我將使用緩存清單文件來處理其他離線問題)。異步客戶端JavaScript進程與服務器交談

這是一個合理的計劃,什麼是異步JSON後處理的最佳技術實現? (也許是一個計時器,輪詢LocalStorage和每秒鐘檢查服務器連接?)是否有更好的方法來實現服務器同步(如果我在服務器上實現這一點,我會寫一個服務 - 是否有一個等效的JavaScript機制? )

謝謝。

回答

0

最後我只是用一個簡單的setInterval,如下所示:

setInterval("SyncLocalStorageToServer()", 4000); // Loop at 4 second intervals 

,然後調用繞一圈localStorage的條目,每發送一個輪流到服務器的功能。

0

去年我做了一些測試,只在HTML5瀏覽器上離線運行我們的應用程序。

該應用程序基於JSON服務,並使用我們的lib:pure.js呈現客戶端。即使沒有離線訪問,您也可以使用類似的架構獲得響應速度非常快的應用。

如果JSON服務調用失敗,則認爲我們已脫機,而是使用本地存儲。
當聯機完成呼叫時,它會檢查脫機隊列的狀態並根據需要進行同步。

但後來我開始複製客戶端上的一些服務器驗證邏輯。並發現存儲的數據未加密。即使有像javascrypt這樣的東西,你需要某個地方的密鑰或設置密碼密鑰等......
那麼你對客戶端有什麼保留?一切?最近查看過的項目?如何處理數據更改衝突?

我敢打賭,在今天的移動網絡中,一般情況下,移動網絡都是在線的,但更容易使應用在移動設備上運行良好,而不是試圖使其脫機。
我們現在放棄了我們的離線工作。

+0

感謝您的信息。 – Journeyman 2011-05-04 13:35:45