我使用C#创建了一个web api,并使用cordova创建了一个移动应用程序。 我正在使用JSON检索cordova app上的所有数据。
现在我想将这个JSON数据保存到客户端。请建议我将所有数据保存到客户端的最佳选择。
答案 0 :(得分:0)
答案 1 :(得分:0)
如果您需要保持客户端和服务器端数据库同步,PouchDB是一个不错的选择 - 您可以使用https://github.com/stacktic/dropbox/blob/master/dropbox.go#L158在应用程序中实现它。您还需要在服务器端实现CouchDB REST接口。
或者由于您的数据已经格式化为JSON,您可能需要尝试使用pouchdb-phonegap-cordova作为存储数据的便捷方式 - 它将与WebView的WebSQL DB或本机SQLite结合使用使用cordova-sqlite-porter插件。
您可以将数据作为JSON结构传递给Cordova-sqlite-storage,这使得importJsonToDb()能够尽快执行操作。如果要插入大量数据,这很好。用法示例:
var db = window.openDatabase("Test", "1.0", "TestDB", 1 * 1024);
var json = {
"structure":{
"tables":{
"Artist":"([Id] PRIMARY KEY, [Title])"
},
"otherSQL": [
"CREATE UNIQUE INDEX Artist_ID ON Artist(Id)"
]
},
"data":{
"inserts":{
"Artist":[
{"Id":"1","Title":"Fred"},
{"Id":"2","Title":"Bob"},
{"Id":"3","Title":"Jack"},
{"Id":"4","Title":"John"}
]
}
}
};
var successFn = function(count){
alert("Successfully imported JSON to DB; equivalent to "+count+" SQL statements");
};
var errorFn = function(error){
alert("The following error occurred: "+error.message);
};
var progressFn = function(current, total){
console.log("Imported "+current+"/"+total+" statements";
};
cordova.plugins.sqlitePorter.importJsonToDb(db, json, {
successFn: successFn,
errorFn: errorFn,
progressFn: progressFn,
batchInsertSize: 500
});