Phonegap iOS应用程序 - 使用csv或JSON创建和填充本地数据库?

时间:2011-04-05 21:12:06

标签: jquery database json cordova jqtouch

我使用jQuery&创建了一个iOS的phonegap应用程序JQTouch。信息从测试数据库中提取并显示在iPhone模拟器的网页上。然而,要使其工作,我预先制作/填充数据库并手动将其复制到正确的文件夹,以便我可以在我的代码中连接到它。

当我安装在我的iPhone上进行测试时,我需要创建数据库并在第一次运行时将其填充到代码中(最终这个方法应该使它与android兼容,而不是尝试在Objective C中手动复制数据库,如下例所示: http://groups.google.com/group/phonegap/browse_thread/thread/ca6c85f7d6c3976c/017cdbf51c70585a)。我的想法是将信息从平面CSV文件或JSON对象(包含在包中)中提取到本地数组中,然后创建数据库表,并遍历将数据插入数据库的数组。

这是一种明智的做法吗?我正努力寻求最小的复杂性!创建和维护我的问题的CSV文件似乎更容易,而不是JSON文件(这似乎为它增加了额外的复杂性) - 任何想法?最后,有没有人知道如何从CSV文件中提取信息?我发现这个看起来很有希望的JQuery库(http://code.google.com/p/js-tables/wiki/CSV) - 有更好的方法吗?

感谢您的帮助,我不想在获得一些建议之前加入!尼克

1 个答案:

答案 0 :(得分:0)

首先,考虑数据库文件的大小。在模拟器和桌面浏览器上进行测试几乎不会在设备上遇到。我发现旧设备上的5meg文本文件无法容忍。

其次,我主张总是使用json,因为它在JS中更容易使用,而且你不需要使用外部库。

您可能考虑的一种方法是将“db记录”存储在捆绑到应用程序包中的文件中。然后,当您需要“记录”时,您可以使用ajax获取文件,读取它,将其存储在本地数据库中,如果您想要以后使用,等等。

$.ajax({
          url: asset_path + "/" + filename,
          success : function(data) {
                // data is your json object
          },
          error : function(request,error) {
                // file not found
          },
          async: false,
          dataType: "json"
        });

如果生成json文件,与使用所有字符串处理和括号等的CSV相比,您可能会获得一些文件大小的开销。

如果这是进入一个Phonegap包或被放入一个应用程序包,这些文件将被压缩,以帮助减轻这种方式的大小。