Приложение Phonegap для iOS - создать и заполнить локальную базу данных с помощью CSV или JSON? - PullRequest
1 голос
/ 06 апреля 2011

Я создал приложение phonegap для iOS, используя jQuery & 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 голосов
/ 20 мая 2011

Сначала рассмотрим размер файла вашей базы данных.Тест в симуляторе и на вашем настольном браузере не будет почти тем, что вы встречаете на устройствах.Я обнаружил, что текстовый файл размером 5 мегабайт недопустим на старых устройствах.

Во-вторых, я бы рекомендовал всегда использовать json, поскольку его гораздо проще использовать в JS, и вам не нужно использовать внешние библиотеки.

Один из подходов, который вы могли бы рассмотреть, - хранить ваши «записи БД» в файлах, которые упакованы в ваш пакет приложения.Затем, когда вам нужно «записать», вы можете захватить файл с помощью 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 или помещается в пакет приложения, эти файлы будут сжаты, чтобы помочь уменьшить размертаким образом.

...