我正在使用AngularJS開始我的第一個PhoneGap項目。它是一個數據庫驅動的應用程序,使用REST API作爲後端。首先,我不會在本地存儲數據,所以沒有互聯網就不會有太多的工作。但是,我最終希望能夠在本地存儲數據,並在互聯網可用時進行同步,因爲我知道我個人禁用手機上的互聯網連接(空中飛機,電池電量不足),或者沒有酒吧。我在想,如果你能指出我爲這種類型的同步提供了一些好的資源。一些推薦的庫?或者也許是一些關於陷阱的討論以及如何繞行它們。我已經Google了一下,但我想現在,我不知道要問的問題。在PhoneGap中與服務器同步數據的策略
此外,我的意圖是建立它依賴互聯網的第一個,然後添加同步....這是一個好主意,或者我是在拍攝自己的腳?我是否需要從一開始就構建它同步?
我曾經有人建議先將應用程序構建爲本地應用程序,而不是僅限於Internet的部分,這對於它具有一定的邏輯性。遠程存儲對我來說非常重要。我知道這個決定與我的應用目標有很大關係,但從構建這個目標的立場來看,最終的目標是本地存儲+互聯網存儲以及雙向同步,哪些會更容易?或者它甚至有所作爲?
首先,我想使用UUID而不是順序整數主鍵。我也想過爲每個設備分配一個在其生成的任意鍵上加上前綴的ID,但這看起來很微妙。任何人都使用任何技術思考?
我想我需要一個很好的系統來告訴哪些數據已被同步。在客戶端,我猜想任何創建/編輯的記錄都可以標記爲同步。但在服務器端,你有多個客戶端,所以這是行不通的。我想你可以有一個last_updated時間戳,並同步一切更新同步上次成功的同步。
在多個地方編輯記錄呢?如果兩個客戶端進行編輯,然後想要同步,則合併時會出現一些模糊不清的情況,例如在git或其他版本控制系統中合併分支時。你如何處理?我想通過存儲每個提交的差異來做到這一點。我想你可以存儲差異?我想到的越多,聽起來就越複雜。我是在過度思考還是在低思考?
客戶端存儲怎麼樣?我想過SQLite,或者PhoneGap本地存儲的東西(http://docs.phonegap.com/en/1.2.0/phonegap_storage_storage.md.html)。建議?同步將在REST API上進行,交換JSON,所以我想的是將數據實際存儲爲JSON的東西,或者類似JSON的易於轉換的東西,會很好。另一方面,如果我將不得不交換某種數據差異格式,也許這就是我需要存儲的內容?
有沒有人使用過? http://pouchdb.com/似乎與我的很多擔憂有關,但是如果你一直沿着這條路走下去,會很樂意聽到你的想法嗎? – eimajenthat