11

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

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

该应用程序是一个教育应用程序,包含大约 100 道左右的多项选择题和一些记忆游戏。

下载后的应用程序可以保持离线状态。

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

我想要读取和写入的唯一数据是用户的表现、错误的总次数、每张卡等以及游戏的任何高分。

这些都是非常基本的信息,可以保存在非常简单的 js 对象中。

我希望它是一个相当简单的解决方案,并且非常易于维护/重复。

我最好的选择是什么?phonegap 文件 api?json/草坪椅?本地存储?饼干?有没有办法“更新”应用程序并将其作为对象保留在 javascript 中?网盘?鳞片?存储 API?

其中一些似乎有些矫枉过正。

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

4

5 回答 5

7

我个人喜欢localStorage。它很简单,适用于大多数情况。

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

于 2012-11-25T19:59:19.873 回答
4

试试我的库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获取原始源代码

于 2012-11-26T04:17:23.957 回答
2

看起来这些是不错的,虽然我还没有尝试过。

如果您使用的是使用 AngularJS 的ionic 框架,我喜欢ngStorage。这个我试过了,太棒了。

于 2014-08-27T04:32:36.813 回答
1

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

但你的案子似乎更重要。我会使用File API将我的持久数据存储在Documents 文件夹中。

于 2012-11-25T20:41:08.243 回答
0

Phonegap 支持 SQL Lite http://docs.phonegap.com/en/2.2.0/cordova_storage_storage.md.html#Storage

抱歉,我没有更多信息。我对这个话题很感兴趣,碰巧遇到了它。

于 2013-04-01T18:13:39.367 回答