這主要歸結爲用戶體驗與數據的新鮮度。
PouchDB的目的是讓一個應用程序,以保持本地數據和同步其與後端系統。 (目前支持CouchDB和Couchbase作爲後端服務器的示例)。它也被設計爲允許多個客戶端進行更改。
大多數數據庫都期望中央系統的高可用性。它們旨在立即解決衝突。對於PouchDB,您預計在客戶端寫入時可能無法解決的衝突。
的核心思想是,你的應用程序將與不良或有時無網絡連接使用。本地保存信息意味着即使在這些情況下,您的應用程序也可以繼續工作。
主要權衡:
Keep
- 應用仍舊可以提供有用的功能的W/O的網絡連接
- 更快的響應時間
- 降低整個網絡的數據傳輸(避免重新發送所有數據每次調用)
- 可能需要注意解決衝突
- 可以存儲過量數據的本地
Delete/Purge
- 應用程序無法有意義功能離線
- 應用需要保證用戶只能看到更新的數據
- 應用程序使用的存儲量不可接受
注PouchDB是的NoSQL數據庫。 NoSQL數據庫無法執行「ACID」合規性。這意味着如果您的應用程序需要將數據更改爲原子(事務性),則這是錯誤的解決方案。
有很多用例最終一致的數據是好的。這可以很簡單,只需要一個客戶端和後端系統就什麼是正確的「同意」。或者它可能是一個複雜的系統,有多個作者進行更改,最終傳播並整合。
還有安全考慮。如果用戶在共享機器上,那麼您是否會爲用戶提供刪除敏感數據的方法?
作爲最後一點,您可能需要搜索「首先脫機」作爲應用程序開發的一種方法。一旦用戶註銷可能是刪除數據的
來源
2017-03-11 01:00:58
Hod
我在這裏找到了有趣的指針:https://developers.google.com/web/fundamentals/instant-and-offline/web-storage/ – balteo
非常感謝大家。兩個答案都非常相關。如果我能接受兩者,我會這樣做。 :-) – balteo