不知道您需要在本地存儲多少數據,但如果您可以將其限制爲5MB,則可以使用json
和localStorage
而不是本地數據庫。
當您的應用程序提出數據請求時,請一次全部使用時間戳將其全部返回,並使用它來巧妙地僅返回更新的數據。像yourhost.com/retrieveData
這樣的調用將返回所有數據,並且yourhost.com/retrieveData/timestampParam
僅返回時間戳後更新的數據。
返回類似:
{ "table1" : [{"col1":"data1","col2":"data2"},{"col1":"data3","col2":"data4"}],
"table2" : [{"col3":"data5","col4":"data6"},{"col3":"data5","col4":"data6"}],
"timestamp" : 1234567 } //this should be optimized for your needs, it's just a generic example.
當應用程序開始之前,什麼都做的東西沿着這些路線,你會確保您的應用始終保持最新狀態:
Check if the data is stored
If there isn't, or if the user is online or if the timestamp is too old, or you can perform any check you might need here
Retrieve the data again using the stored timestamp
Update the local data
Store the timestamp returned
If none of the above applies, the app is good to run
我在幾個應用程序中使用該方法。我通過數據庫選擇了它,因爲它更易於實施和維護。
json中的所有數據肯定會大於5MB。每個文件/對象的限制總計是5MB還是5MB? – SomethingOn
5MB是可以保存在本地存儲上的最大數據大小。但AFAIK你也有限的網絡SQL,5MB的iOS(可以擴展到10,如果用戶授權)和12MB的Android如果我記得沒錯。需要搜索以確保雖然。當我回家時我會盡力找到一些東西。但是,如果你需要的不僅僅是這些,我相信你將不得不本土化。 – caiocpricci2
感謝caiocpricci2,我實際上希望使用PG-SQLite插件https://github.com/pgsqlite/PG-SQLitePlugin-iOS,但我無法使插件與我的項目一起工作:s – SomethingOn