首页 文章

PhoneGap应用的持久数据

提问于
浏览
11

编辑#2 - 到目前为止(2天后)的回复是个人意见和偏好,而不是对离线phoneGap应用程序在所有相关设备上轻松存储简单数据的各种选项的分析 . 因此,我没有接受任何答案,但我正在关注这个问题 .

对于我正在构建的PhoneGap Web应用程序,我应该考虑哪种格式的持久性数据,我有点困惑 . 我一直在研究这个,但考虑到我平庸的要求,事情并不清楚 .

该应用程序是一个教育应用程序,有大约100个左右的多项选择题和附加的一些记忆游戏 .

下载后的应用程序可以保持脱机状态

它适用于所有支持phonegap的设备 .

我想要读写的唯一数据是用户的表现,总计错误的次数,每张卡等以及游戏的任何高分 .

这是所有非常基本的信息,可以在非常简单的js对象中保存 .

我希望它是一个相当简单的解决方案,很容易维护/重复 .

什么是我最好的选择?手机档文件api? JSON / lawnchair?本地存储? Cookies ?有没有办法'更新'应用程序并将其作为javascript中的对象?的WebSQL? sqilite?存储API?

其中一些似乎有点矫枉过正 .

编辑是否存在设备差异,我应该进行一些设备检测并使用不同的技术?

5 回答

  • 1

    我个人喜欢localStorage . 它很直接,适用于大多数情况 .

    如果您只记录上面提到的数据,localStorage将是完美的 . 我只是通过使用say JSON.stringify() 将它们变成一个字符串来对数据对象进行seralise,然后在使用 JSON.parse() 时将其重新拉回到可用的JS对象中 .

  • 2

    如何尝试我的库http://dev.yathit.com/ydn-db/getting-started.html支持IndexedDB(优秀的性能,索引扫描查询),WebSQL(良好的性能,SQL查询)或localStorage(公平的性能,没有查询,按键获取,2.5 MB限制) .

    db = new ydn.db.Storage('test-store');
    
    db.put('store1', {test: 'Hello World!'}, 123);
    
    req = db.get('store1', 123);
    req.done(function(record) {
      console.log(record);
    });
    

    高性能,同时仍然很容易 .

    不喜欢库依赖,在https://bitbucket.org/ytkyaw/ydn-db获取原始源代码

  • 0

    看起来这些都是好的,虽然我还没试过 .

    如果你使用的是使用AngularJS的ionic framework,我喜欢ngStorage . 这个我尝试了,它很棒 .

  • 4

    我使用localStorage来保存我的持久数据,但它在某种程度上不可靠 . 我看到一些数据丢失了,但我不知道为什么 . 但我的持久数据使用并不那么重要,所以我不介意这些不一致 .

    但你的情况似乎更重要 . 我将持久数据存储在Documents folder中,其中包含File API .

  • 7

    Phonegap具有SQL Lite的本地存储支持http://docs.phonegap.com/en/2.2.0/cordova_storage_storage.md.html#Storage

    对不起,我没有更多信息 . 我对这个话题很感兴趣,碰巧碰到了它 .

相关问题