2015-05-11 59 views
1

我有一個離子應用程序和一個Parse.com後端。我的用戶可以在練習程序上執行CRUD功能,改變程序的各個方面,包括添加,刪除,編輯練習。何時調用後端以及何時在本地存儲(angularjs)

我很困惑什麼時候保存,何時調用服務器以及可以在服務中保存多少數據/ $rootScope

典型用戶流是如下:

  1. 創建程序和客戶端(在$localStorage兩者上的服務器和存儲數據創建)。
  2. 用戶可以編輯屏幕,他們可以在程序內的所有練習中執行CRUD功能。目前,我對每個功能執行服務器調用,以便將其同步到支持的服務器上。
  3. 用戶可以返回並選擇一個不同的程序 - 下載數據並再次將其存儲到localStorage。

我的問題是如何確保我的用戶數據始終保存到服務器併爲他們提供快速響應的用戶體驗。

有超時功能定期觸發保存是否正常?在移動設備上,由於連接不良,對服務器的呼叫數量非常痛苦。

任何有關與Ionic和Parse.com完全本地/遠程同步的想法都會受到歡迎。

+0

如何回調? – Shomz

回答

1

從我的經驗,想到這一點的最好辦法是:

  • localStorage本質上是一個緩存層,而如果最新的是偉大的,因爲它可以減少網絡調用。但是,它僅限於當前會話,應該視爲易失性存儲。

  • 您的服務器是您的真相之源,因此,應始終更新。

這是什麼意思,對於讀取,localstorage是偉大的,你不需要獲取你的數據一百萬次,如果它沒有改變。對於寫入,請始終信任您的服務器以進行長期存儲。

我建議的模式是,在加載時,獲取任何相關數據並將其保存到本地存儲。任何進一步的讀取應該來自本地存儲。編輯應直接進入服務器,如果成功,您可以將這些更改寫入localstorage。這樣,如果在保存時發生錯誤,可以通知用戶,並且/或者您可以使用localstorage作爲隊列繼續嘗試將數據發佈到服務器,直到完全成功爲止。

1

這稱爲「離線同步」或有時稱爲「4種方式數據綁定」。重點是本地緩存數據並將其與遠程後端同步。這是一個非常普遍的需求,但解決方案是非常不常見的......將理想的流動遵循了這一理念:

  • 保存本地數據
  • 嘗試同步它與服務器(執行自動合併

而且

  • 定期同步,以及一個計時器,也許一些「連接恢復」事件

這很難手動實現。如果長時間在尋找模塊,並且唯一出現在我腦海中的模塊並不真實地滿足您的需求(成爲他們通常是爲您提供前端連接器的後端提供者;並且您已經擁有一個有意義的後端),但在這裏他們無論如何是:

相關問題