【发布时间】:2016-05-25 03:33:47
【问题描述】:
我使用 C# 创建了一个 Web api,还使用 cordova 创建了一个移动应用程序。 我正在使用 JSON 检索有关 cordova 应用程序的所有数据。
现在我想将此 JSON 数据保存到客户端。请建议我将所有数据保存到客户端的最佳选择。
- SQLLite
- websql
- JSON 文件直接保存到客户端或其他选项。
【问题讨论】:
标签: c# android json cordova asp.net-web-api
我使用 C# 创建了一个 Web api,还使用 cordova 创建了一个移动应用程序。 我正在使用 JSON 检索有关 cordova 应用程序的所有数据。
现在我想将此 JSON 数据保存到客户端。请建议我将所有数据保存到客户端的最佳选择。
【问题讨论】:
标签: c# android json cordova asp.net-web-api
如果您需要保持客户端和服务器端数据库同步,PouchDB 是一个不错的选择 - 您可以使用 pouchdb-phonegap-cordova 在应用程序中实现它。您还需要在服务器端实现一个 CouchDB REST 接口。
或者由于您的数据已经格式化为 JSON,您可能想尝试使用 cordova-sqlite-porter 作为一种方便的方式来存储数据 - 它可以与 WebView 的 WebSQL DB 或本机 SQLite 结合使用 Cordova-sqlite-storage 插件。
您可以将数据作为 JSON 结构传递给importJsonToDb(),这使得optimisations 能够尽快执行操作。如果您有大量数据要插入,这很好。用法示例:
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
});
【讨论】: