建议我最佳本地存储选项

时间:2016-02-14 05:46:47

标签: c# android json cordova asp.net-web-api

我使用C#创建了一个web api,并使用cordova创建了一个移动应用程序。 我正在使用JSON检索cordova app上的所有数据。

现在我想将这个JSON数据保存到客户端。请建议我将所有数据保存到客户端的最佳选择。

  • SQLLite
  • 的WebSQL
  • JSON文件直接保存到客户端或其他选项。

2 个答案:

答案 0 :(得分:0)

您可以使用pouchdb no SQL database here,也可以使用cordova s​​qlite插件here

答案 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
});